summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/ch07
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/ch07')
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A1.1_T1.js40
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A1.1_T2.js22
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A1.2_T1.js40
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A1.2_T2.js23
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A1.3_T1.js40
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A1.3_T2.js23
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A1.4_T1.js22
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A1.4_T2.js23
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A1.5_T1.js22
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A1.5_T2.js23
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A2.1_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A2.1_T2.js15
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A2.2_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A2.2_T2.js15
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A2.3_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A2.3_T2.js15
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A2.4_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A2.4_T2.js15
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A2.5_T1.js15
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A2.5_T2.js15
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A3.1_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A3.1_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A3.2_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A3.2_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A3.3_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A3.3_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A3.4_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A3.4_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A3.5_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A3.5_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A4.1_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A4.1_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A4.2_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A4.2_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A4.3_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A4.3_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A4.4_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A4.4_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A4.5_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A4.5_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A5_T1.js13
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A5_T2.js13
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A5_T3.js13
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A5_T4.js13
-rw-r--r--js/src/tests/test262/ch07/7.2/S7.2_A5_T5.js13
-rw-r--r--js/src/tests/test262/ch07/7.2/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.2/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-1.js16
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-10.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-11.js19
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-12.js19
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-13.js19
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-14.js19
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-15.js16
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-2.js16
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-3.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-4.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-5.js16
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-6.js16
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-7.js21
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-8.js21
-rw-r--r--js/src/tests/test262/ch07/7.3/7.3-9.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A1.1_T1.js40
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A1.1_T2.js19
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A1.2_T1.js40
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A1.2_T2.js19
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A1.3.js23
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A1.4.js25
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A2.1_T1.js16
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A2.1_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A2.2_T1.js16
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A2.2_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A2.3.js16
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A2.4.js16
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A3.1_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A3.1_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A3.1_T3.js15
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A3.2_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A3.2_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A3.2_T3.js15
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A3.3_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A3.3_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A3.4_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A3.4_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A4_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A4_T2.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A4_T3.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A4_T4.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A5.1_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A5.1_T2.js22
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A5.2_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A5.2_T2.js22
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A5.3.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A5.4.js20
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A6_T1.js13
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A6_T2.js13
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A6_T3.js13
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A6_T4.js13
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A7_T1.js57
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A7_T2.js57
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A7_T3.js57
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A7_T4.js57
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A7_T5.js57
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A7_T6.js57
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A7_T7.js57
-rw-r--r--js/src/tests/test262/ch07/7.3/S7.3_A7_T8.js57
-rw-r--r--js/src/tests/test262/ch07/7.3/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.3/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A1_T1.js44
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A1_T2.js13
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A2_T1.js78
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A2_T2.js13
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A3.js20
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A4_T1.js16
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A4_T2.js15
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A4_T3.js16
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A4_T4.js16
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A4_T5.js14
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A4_T6.js14
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A4_T7.js17
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A5.js49
-rw-r--r--js/src/tests/test262/ch07/7.4/S7.4_A6.js57
-rw-r--r--js/src/tests/test262/ch07/7.4/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.4/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-1.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-10.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-11.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-12.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-13.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-14.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-15.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-16.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-17.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-18.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-19.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-2.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-20.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-21.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-22.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-23.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-24.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-25.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-26.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-27.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-28.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-29.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-3.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-30.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-31.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-32.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-33.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-34.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-35.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-36.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-4.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-5.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-6.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-7.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-8.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6-9.js20
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-1.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-10.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-11.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-12.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-13.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-14.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-15.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-16.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-2.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-3.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-4.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-5.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-6.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-7.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-8.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-9.js34
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-1.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-10.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-11.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-12.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-13.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-14.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-15.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-16.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-2.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-3.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-4.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-5.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-6.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-7.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-8.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-9.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-1.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-10.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-11.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-12.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-13.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-14.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-15.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-16.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-2.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-3.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-4.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-5.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-6.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-7.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-8.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-9.js33
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-1.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-10.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-11.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-12.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-13.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-14.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-15.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-16.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-2.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-3.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-4.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-5.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-6.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-7.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-8.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-9.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-1.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-10.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-11.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-12.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-13.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-14.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-15.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-16.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-2.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-3.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-4.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-5.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-6.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-7.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-8.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-9.js30
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-1.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-10.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-11.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-12.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-13.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-14.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-15.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-16.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-2.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-3.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-4.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-5.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-6.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-7.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-8.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-9.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-1.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-10.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-11.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-12.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-13.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-14.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-15.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-16.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-2.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-3.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-4.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-5.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-6.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-7.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-8.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-9.js29
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-1.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-10.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-11.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-12.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-13.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-14.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-15.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-16.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-2.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-3.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-4.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-5.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-6.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-7.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-8.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-9.js46
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.1.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.10.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.11.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.12.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.13.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.14.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.15.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.16.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.17.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.18.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.19.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.2.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.20.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.21.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.22.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.23.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.24.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.25.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.3.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.4.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.5.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.6.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.7.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.8.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.9.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2-1gs.js16
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-17-s.js23
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-18-s.js23
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-19-s.js22
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-20-s.js22
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-21-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-22-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-23-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-24-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-25-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-1-s.js23
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-10-s.js18
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-11-s.js18
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-12-s.js18
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-13-s.js18
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-14-s.js18
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-16-s.js18
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-2-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-3-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-4-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-5-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-6-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-7-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-8-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-9-s.js25
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.1.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.10.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.11.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.12.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.13.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.14.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15.js15
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15ns.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.16.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.17.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18.js16
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18ns.js15
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.19.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.2.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.20.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21.js15
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21ns.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22.js15
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22ns.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23.js16
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23ns.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24.js15
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24ns.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.25.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26.js15
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26ns.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.27.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.28.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.29.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.3.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.30.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.31.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.4.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.5.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.6.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.7.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.8.js12
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.9.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.1.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.2.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.3.js13
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A2.js121
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.6/7.6.1/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A1.2_T1.js16
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A1.2_T2.js16
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A1.2_T3.js22
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A1.3_T1.js16
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A1.3_T2.js16
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A1.3_T3.js22
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A2.1_T1.js75
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A2.1_T2.js75
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A2.1_T3.js75
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A2.1_T4.js50
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A4.1_T1.js116
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A4.1_T2.js117
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A4.2_T1.js144
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A4.2_T2.js144
-rw-r--r--js/src/tests/test262/ch07/7.6/S7.6_A4.3_T1.js52
-rw-r--r--js/src/tests/test262/ch07/7.6/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.6/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.7/S7.7_A1.js22
-rw-r--r--js/src/tests/test262/ch07/7.7/S7.7_A2_T1.js13
-rw-r--r--js/src/tests/test262/ch07/7.7/S7.7_A2_T10.js13
-rw-r--r--js/src/tests/test262/ch07/7.7/S7.7_A2_T2.js13
-rw-r--r--js/src/tests/test262/ch07/7.7/S7.7_A2_T3.js13
-rw-r--r--js/src/tests/test262/ch07/7.7/S7.7_A2_T4.js13
-rw-r--r--js/src/tests/test262/ch07/7.7/S7.7_A2_T5.js14
-rw-r--r--js/src/tests/test262/ch07/7.7/S7.7_A2_T6.js13
-rw-r--r--js/src/tests/test262/ch07/7.7/S7.7_A2_T7.js13
-rw-r--r--js/src/tests/test262/ch07/7.7/S7.7_A2_T8.js13
-rw-r--r--js/src/tests/test262/ch07/7.7/S7.7_A2_T9.js13
-rw-r--r--js/src/tests/test262/ch07/7.7/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.7/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.1/S7.8.1_A1_T1.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.1/S7.8.1_A1_T2.js16
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.1/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.1/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.2/S7.8.2_A1_T1.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.2/S7.8.2_A1_T2.js16
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.2/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.2/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-1-s.js22
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-1gs.js16
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-2-s.js22
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-2gs.js17
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-3-s.js22
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-3gs.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-4-s.js22
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-5-s.js22
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-6-s.js22
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-7-s.js22
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.1_T1.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.1_T2.js55
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T1.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T2.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T3.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T4.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T5.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T6.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T7.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T8.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T1.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T2.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T3.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T1.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T2.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T3.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T4.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T5.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T6.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T7.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T8.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.1_T1.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.1_T2.js55
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T1.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T2.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T3.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T1.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T2.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T3.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T4.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T5.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T6.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T7.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T8.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T1.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T2.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T3.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T4.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T5.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T6.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T7.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T8.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T3.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T4.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T5.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T6.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T7.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T8.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T1.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T2.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T3.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T4.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T5.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T6.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T7.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T8.js60
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T1.js90
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T2.js90
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T3.js55
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T4.js55
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T5.js55
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T6.js55
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T7.js40
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T8.js40
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.1_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.1_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.2_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.2_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.3/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-1-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-10-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-11-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-12-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-13-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-14-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-15-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-16-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-17-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-18-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-19-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-1gs.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-2-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-20-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-21-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-22-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-23-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-24-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-25-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-26-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-27-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-28-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-29-s.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-3-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-30-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-31-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-32-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-33-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-4-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-5-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-6-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-7-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-8-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-9-s.js24
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.1_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.1_T2.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.2_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.2_T2.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.1_T1.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.1_T2.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.2_T1.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.2_T2.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.3_T1.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.1_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.1_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.2_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.2_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.1_T1.js40
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.1_T2.js35
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T1.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T2.js115
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T3.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T4.js86
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T5.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T6.js144
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T7.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T8.js144
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T1.js17
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T7.js36
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T1.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T2.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T3.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T1.js90
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T2.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T3.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.3_T1.js85
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T1.js90
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T2.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T3.js19
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T4.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T3.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T4.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T5.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T6.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.3_T1.js85
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.4/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-1.js20
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-1gs.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-2gs.js13
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.1_T1.js36
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.1_T2.js55
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T3.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T4.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T1.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T2.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T3.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T4.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T5.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T6.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.4_T1.js31
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.4_T2.js55
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T1.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T2.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T3.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T4.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T5.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T6.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.1_T1.js36
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.1_T2.js56
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.2_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.2_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T1.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T2.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T3.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T4.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T5.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T6.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.4_T1.js31
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.4_T2.js55
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T1.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T2.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T3.js15
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T4.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T5.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T6.js21
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T1.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T2.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T3.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T4.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T5.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T6.js26
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T7.js17
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T8.js17
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T9.js17
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A4.1.js17
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A4.2.js20
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/7.8.5/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.8/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T3.js15
-rw-r--r--js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T4.js20
-rw-r--r--js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T5.js18
-rw-r--r--js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T6.js16
-rw-r--r--js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T7.js23
-rw-r--r--js/src/tests/test262/ch07/7.9/7.9.2/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.9/7.9.2/shell.js0
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A1.js38
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T1.js13
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T10.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T11.js15
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T12.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T3.js13
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T4.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T5.js15
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T6.js15
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T7.js13
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T8.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A10_T9.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A11_T1.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A11_T10.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A11_T11.js18
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A11_T2.js18
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A11_T3.js18
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A11_T4.js15
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A11_T5.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A11_T6.js18
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A11_T7.js18
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A11_T8.js19
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A11_T9.js18
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A2.js32
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A3.js29
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A4.js19
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.1_T1.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.2_T1.js24
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.3_T1.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.4_T1.js23
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.5_T1.js20
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.5_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.5_T3.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.5_T4.js22
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.5_T5.js30
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.6_T1.js36
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.6_T2.js37
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.7_T1.js19
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.8_T1.js52
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A5.9_T1.js52
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T1.js16
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T10.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T11.js18
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T12.js18
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T13.js18
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T2.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T3.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T4.js18
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T5.js19
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T6.js16
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T7.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T8.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.1_T9.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.2_T1.js19
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.2_T10.js20
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.2_T2.js20
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.2_T3.js19
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.2_T4.js20
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.2_T5.js19
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.2_T6.js20
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.2_T7.js20
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.2_T8.js20
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.2_T9.js19
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.3_T1.js19
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.3_T2.js20
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.3_T3.js21
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.3_T4.js20
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.3_T5.js20
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.3_T6.js21
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.3_T7.js22
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.4_T1.js16
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A6.4_T2.js16
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A7_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A7_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A7_T3.js15
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A7_T4.js15
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A7_T5.js17
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A7_T6.js15
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A7_T7.js16
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A7_T8.js15
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A7_T9.js16
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A8_T1.js13
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A8_T2.js16
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A8_T3.js13
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A8_T4.js16
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A8_T5.js13
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A9_T1.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A9_T2.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A9_T5.js16
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A9_T6.js15
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A9_T7.js16
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A9_T8.js15
-rw-r--r--js/src/tests/test262/ch07/7.9/S7.9_A9_T9.js14
-rw-r--r--js/src/tests/test262/ch07/7.9/browser.js0
-rw-r--r--js/src/tests/test262/ch07/7.9/shell.js0
-rw-r--r--js/src/tests/test262/ch07/browser.js0
-rw-r--r--js/src/tests/test262/ch07/shell.js0
749 files changed, 19893 insertions, 0 deletions
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A1.1_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A1.1_T1.js
new file mode 100644
index 000000000..1c8e5a9ca
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A1.1_T1.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * HORIZONTAL TAB (U+0009) between any two tokens is allowed
+ *
+ * @path ch07/7.2/S7.2_A1.1_T1.js
+ * @description Insert HORIZONTAL TAB(\u0009 and \t) between tokens of var x=1
+ */
+
+// CHECK#1
+eval("\u0009var\u0009x\u0009=\u00091\u0009");
+if (x !== 1) {
+ $ERROR('#1: eval("\\u0009var\\u0009x\\u0009=\\u00091\\u0009"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+eval("\u0009" + "var" + "\u0009" + "x" + "\u0009" + "=" + "\u0009" + "1" + "\u0009");
+if (x !== 1) {
+ $ERROR('#2: eval("\\u0009" + "var" + "\\u0009" + "x" + "\\u0009" + "=" + "\\u0009" + "1" + "\\u0009"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#3
+eval("\tvar\tx\t=\t1\t");
+if (x !== 1) {
+ $ERROR('#3: eval("\\tvar\\tx\\t=\\t1\\t"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#4
+eval("\t" + "var" + "\t" + "x" + "\t" + "=" + "\t" + "1" + "\t");
+if (x !== 1) {
+ $ERROR('#4: eval("\\t" + "var" + "\\t" + "x" + "\\t" + "=" + "\\t" + "1" + "\\t"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#5
+eval("\u0009" + "var" + "\t" + "x" + "\u0009" + "=" + "\t" + "1" + "\u0009");
+if (x !== 1) {
+ $ERROR('#5: eval("\\u0009" + "var" + "\\t" + "x" + "\\u0009" + "=" + "\\t" + "1" + "\\u0009"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A1.1_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A1.1_T2.js
new file mode 100644
index 000000000..081c60ef3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A1.1_T2.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * HORIZONTAL TAB (U+0009) between any two tokens is allowed
+ *
+ * @path ch07/7.2/S7.2_A1.1_T2.js
+ * @description Insert real HORIZONTAL TAB between tokens of var x=1
+ */
+
+//CHECK#1
+ var x = 1 ;
+if (x !== 1) {
+ $ERROR('#1: var x = 1 ; x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+eval(" var\tx =\t2 ");
+if (x !== 2) {
+ $ERROR('#2: var\\tx =\\t1 ; x === 2. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A1.2_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A1.2_T1.js
new file mode 100644
index 000000000..19be1c7e2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A1.2_T1.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * VERTICAL TAB (U+000B) between any two tokens is allowed
+ *
+ * @path ch07/7.2/S7.2_A1.2_T1.js
+ * @description Insert VERTICAL TAB(\u000B and \v) between tokens of var x=1
+ */
+
+// CHECK#1
+eval("\u000Bvar\u000Bx\u000B=\u000B1\u000B");
+if (x !== 1) {
+ $ERROR('#1: eval("\\u000Bvar\\u000Bx\\u000B=\\u000B1\\u000B"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+eval("\u000B" + "var" + "\u000B" + "x" + "\u000B" + "=" + "\u000B" + "1" + "\u000B");
+if (x !== 1) {
+ $ERROR('#2: eval("\\u000B" + "var" + "\\u000B" + "x" + "\\u000B" + "=" + "\\u000B" + "1" + "\\u000B"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#3
+eval("\vvar\vx\v=\v1\v");
+if (x !== 1) {
+ $ERROR('#3: eval("\\vvar\\vx\\v=\\v1\\v"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#4
+eval("\v" + "var" + "\v" + "x" + "\v" + "=" + "\v" + "1" + "\v");
+if (x !== 1) {
+ $ERROR('#4: eval("\\v" + "var" + "\\v" + "x" + "\\v" + "=" + "\\v" + "1" + "\\v"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#5
+eval("\u000B" + "var" + "\v" + "x" + "\u000B" + "=" + "\v" + "1" + "\u000B");
+if (x !== 1) {
+ $ERROR('#5: eval("\\u000B" + "var" + "\\v" + "x" + "\\u000B" + "=" + "\\v" + "1" + "\\u000B"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A1.2_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A1.2_T2.js
new file mode 100644
index 000000000..f5ab425f5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A1.2_T2.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * VERTICAL TAB (U+000B) between any two tokens is allowed
+ *
+ * @path ch07/7.2/S7.2_A1.2_T2.js
+ * @description Insert real VERTICAL TAB between tokens of var x=1
+ */
+
+//CHECK#1
+ var x = 1 ;
+if (x !== 1) {
+ $ERROR('#1: var x = 1 ; x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+eval(" var\vx =\v1 ");
+if (x !== 1) {
+ $ERROR('#2: var\\vx =\\v1 ; x === 1. Actual: ' + (x));
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A1.3_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A1.3_T1.js
new file mode 100644
index 000000000..eb8c2f85c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A1.3_T1.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * FORM FEED (U+000C) between any two tokens is allowed
+ *
+ * @path ch07/7.2/S7.2_A1.3_T1.js
+ * @description Insert FORM FEED(\u000C and \f) between tokens of var x=1
+ */
+
+// CHECK#1
+eval("\u000Cvar\u000Cx\u000C=\u000C1\u000C");
+if (x !== 1) {
+ $ERROR('#1: eval("\\u000Cvar\\u000Cx\\u000C=\\u000C1\\u000C"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+eval("\u000C" + "var" + "\u000C" + "x" + "\u000C" + "=" + "\u000C" + "1" + "\u000C");
+if (x !== 1) {
+ $ERROR('#2: eval("\\u000C" + "var" + "\\u000C" + "x" + "\\u000C" + "=" + "\\u000C" + "1" + "\\u000C"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#3
+eval("\fvar\fx\f=\f1\f");
+if (x !== 1) {
+ $ERROR('#3: eval("\\fvar\\fx\\f=\\f1\\f"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#4
+eval("\f" + "var" + "\f" + "x" + "\f" + "=" + "\f" + "1" + "\f");
+if (x !== 1) {
+ $ERROR('#4: eval("\\f" + "var" + "\\f" + "x" + "\\f" + "=" + "\\f" + "1" + "\\f"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#5
+eval("\u000C" + "var" + "\f" + "x" + "\u000C" + "=" + "\f" + "1" + "\u000C");
+if (x !== 1) {
+ $ERROR('#5: eval("\\u000C" + "var" + "\\f" + "x" + "\\u000C" + "=" + "\\f" + "1" + "\\u000C"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A1.3_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A1.3_T2.js
new file mode 100644
index 000000000..90fe95742
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A1.3_T2.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * FORM FEED (U+000C) between any two tokens is allowed
+ *
+ * @path ch07/7.2/S7.2_A1.3_T2.js
+ * @description Insert real FORM FEED between tokens of var x=1
+ */
+
+//CHECK#1
+ var x = 1 ;
+if (x !== 1) {
+ $ERROR('#1: var x = 1 ; x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+eval(" var\fx =\f1 ");
+if (x !== 1) {
+ $ERROR('#2: var\\fx =\\f1 ; x === 1. Actual: ' + (x));
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A1.4_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A1.4_T1.js
new file mode 100644
index 000000000..1f10f9166
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A1.4_T1.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * SPACE (U+0020) between any two tokens is allowed
+ *
+ * @path ch07/7.2/S7.2_A1.4_T1.js
+ * @description Insert SPACE(\u0020) between tokens of var x=1
+ */
+
+// CHECK#1
+eval("\u0020var\u0020x\u0020=\u00201\u0020");
+if (x !== 1) {
+ $ERROR('#1: eval("\\u0020var\\u0020x\\u0020=\\u00201\\u0020"); x === 1;');
+}
+
+//CHECK#2
+eval("\u0020" + "var" + "\u0020" + "x" + "\u0020" + "=" + "\u0020" + "1" + "\u0020");
+if (x !== 1) {
+ $ERROR('#2: eval("\\u0020" + "var" + "\\u0020" + "x" + "\\u0020" + "=" + "\\u0020" + "1" + "\\u0020"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A1.4_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A1.4_T2.js
new file mode 100644
index 000000000..67c9c96c1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A1.4_T2.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * SPACE (U+0020) between any two tokens is allowed
+ *
+ * @path ch07/7.2/S7.2_A1.4_T2.js
+ * @description Insert real SPACE between tokens of var x=1
+ */
+
+//CHECK#1
+eval("\u0020var x\u0020= 1\u0020");
+if (x !== 1) {
+ $ERROR('#1: eval("\\u0020var x\\u0020= 1\\u0020"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+ var x = 1 ;
+if (x !== 1) {
+ $ERROR('#2: var x = 1 ; x === 1. Actual: ' + (x));
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A1.5_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A1.5_T1.js
new file mode 100644
index 000000000..59339116e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A1.5_T1.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * NO-BREAK SPACE (U+00A0) between any two tokens is allowed
+ *
+ * @path ch07/7.2/S7.2_A1.5_T1.js
+ * @description Insert NO-BREAK SPACE(\u00A0) between tokens of var x=1
+ */
+
+// CHECK#1
+eval("\u00A0var\u00A0x\u00A0=\u00A01\u00A0");
+if (x !== 1) {
+ $ERROR('#1: eval("\\u00A0var\\u00A0x\\u00A0=\\u00A01\\u00A0"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+eval("\u00A0" + "var" + "\u00A0" + "x" + "\u00A0" + "=" + "\u00A0" + "1" + "\u00A0");
+if (x !== 1) {
+ $ERROR('#2: eval("\\u00A0" + "var" + "\\u00A0" + "x" + "\\u00A0" + "=" + "\\u00A0" + "1" + "\\u00A0"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A1.5_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A1.5_T2.js
new file mode 100644
index 000000000..e4635e697
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A1.5_T2.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * NO-BREAK SPACE (U+00A0) between any two tokens is allowed
+ *
+ * @path ch07/7.2/S7.2_A1.5_T2.js
+ * @description Insert real NO-BREAK SPACE between tokens of var x=1
+ */
+
+//CHECK#1
+eval("\u00A0var x\u00A0= 1\u00A0");
+if (x !== 1) {
+ $ERROR('#1: eval("\\u00A0var x\\u00A0= 1\\u00A0"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+ var x = 1 ;
+if (x !== 1) {
+ $ERROR('#2:  var x = 1 ; x === 1. Actual: ' + (x));
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A2.1_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A2.1_T1.js
new file mode 100644
index 000000000..c7fdaaf3e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A2.1_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * HORIZONTAL TAB (U+0009) may occur within strings
+ *
+ * @path ch07/7.2/S7.2_A2.1_T1.js
+ * @description Use HORIZONTAL TAB(\u0009 and \t)
+ */
+
+// CHECK#1
+if (eval("'\u0009str\u0009ing\u0009'") !== "\u0009str\u0009ing\u0009") {
+ $ERROR('#1: eval("\'\\u0009str\\u0009ing\\u0009\'") === "\\u0009str\\u0009ing\\u0009"');
+}
+
+//CHECK#2
+if (eval("'\tstr\ting\t'") !== "\tstr\ting\t") {
+ $ERROR('#2: eval("\'\\tstr\\ting\\t\'") === "\\tstr\\ting\\t"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A2.1_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A2.1_T2.js
new file mode 100644
index 000000000..7a89875ba
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A2.1_T2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * HORIZONTAL TAB (U+0009) may occur within strings
+ *
+ * @path ch07/7.2/S7.2_A2.1_T2.js
+ * @description Use real HORIZONTAL TAB
+ */
+
+//CHECK#1
+if (" str ing " !== "\u0009str\u0009ing\u0009") {
+ $ERROR('#1: " str ing " === "\\u0009str\\u0009ing\\u0009"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A2.2_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A2.2_T1.js
new file mode 100644
index 000000000..69c8de8ff
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A2.2_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * VERTICAL TAB (U+000B) may occur within strings
+ *
+ * @path ch07/7.2/S7.2_A2.2_T1.js
+ * @description Use VERTICAL TAB(\u000B and \v)
+ */
+
+// CHECK#1
+if (eval("'\u000Bstr\u000Bing\u000B'") !== "\u000Bstr\u000Bing\u000B") {
+ $ERROR('#1: eval("\'\\u000Bstr\\u000Bing\\u000B\'") === "\\u000Bstr\\u000Bing\\u000B"');
+}
+
+//CHECK#2
+if (eval("'\vstr\ving\v'") !== "\vstr\ving\v") {
+ $ERROR('#2: eval("\'\\vstr\\ving\\v\'") === "\\vstr\\ving\\v"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A2.2_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A2.2_T2.js
new file mode 100644
index 000000000..f7b415972
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A2.2_T2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * VERTICAL TAB (U+000B) may occur within strings
+ *
+ * @path ch07/7.2/S7.2_A2.2_T2.js
+ * @description Use real VERTICAL TAB
+ */
+
+//CHECK#1
+if (" str ing " !== "\u000Bstr\u000Bing\u000B") {
+ $ERROR('#1: " str ing " === "\\u000Bstr\\u000Bing\\u000B"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A2.3_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A2.3_T1.js
new file mode 100644
index 000000000..9b30396fc
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A2.3_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * FORM FEED (U+000C) may occur within strings
+ *
+ * @path ch07/7.2/S7.2_A2.3_T1.js
+ * @description Use FORM FEED(\u000C and \f)
+ */
+
+// CHECK#1
+if (eval("'\u000Cstr\u000Cing\u000C'") !== "\u000Cstr\u000Cing\u000C") {
+ $ERROR('#1: eval("\'\\u000Cstr\\u000Cing\\u000C\'") === "\\u000Cstr\\u000Cing\\u000C"');
+}
+
+//CHECK#2
+if (eval("'\fstr\fing\f'") !== "\fstr\fing\f") {
+ $ERROR('#2: eval("\'\\fstr\\fing\\f\'") === "\\fstr\\fing\\f"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A2.3_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A2.3_T2.js
new file mode 100644
index 000000000..a575f8a0d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A2.3_T2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * FORM FEED (U+000C) may occur within strings
+ *
+ * @path ch07/7.2/S7.2_A2.3_T2.js
+ * @description Use real FORM FEED
+ */
+
+//CHECK#1
+if (" str ing " !== "\u000Cstr\u000Cing\u000C") {
+ $ERROR('#1: " str ing " === "\\u000Cstr\\u000Cing\\u000C"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A2.4_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A2.4_T1.js
new file mode 100644
index 000000000..4b41932c7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A2.4_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * SPACE (U+0020) may occur within strings
+ *
+ * @path ch07/7.2/S7.2_A2.4_T1.js
+ * @description Use SPACE(\u0020)
+ */
+
+// CHECK#1
+if (eval("'\u0020str\u0020ing\u0020'") !== "\u0020str\u0020ing\u0020") {
+ $ERROR('#1: eval("\'\\u0020str\\u0020ing\\u0020\'") === "\\u0020str\\u0020ing\\u0020"');
+}
+
+//CHECK#2
+if (eval("' str ing '") !== " str ing ") {
+ $ERROR('#2: eval("\' str ing \'") === " str ing "');
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A2.4_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A2.4_T2.js
new file mode 100644
index 000000000..b61d2313d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A2.4_T2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * SPACE (U+0020) may occur within strings
+ *
+ * @path ch07/7.2/S7.2_A2.4_T2.js
+ * @description Use real SPACE
+ */
+
+//CHECK#1
+if (" str ing " !== "\u0020str\u0020ing\u0020") {
+ $ERROR('#1: " str ing " === "\\u0020str\\u0020ing\\u0020"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A2.5_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A2.5_T1.js
new file mode 100644
index 000000000..60fb7f358
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A2.5_T1.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * NO-BREAK SPACE (U+00A0) may occur within strings
+ *
+ * @path ch07/7.2/S7.2_A2.5_T1.js
+ * @description Use NO-BREAK SPACE(\u00A0)
+ */
+
+// CHECK#1
+if (eval("'\u00A0str\u00A0ing\u00A0'") !== "\u00A0str\u00A0ing\u00A0") {
+ $ERROR('#1: eval("\'\\u00A0str\\u00A0ing\\u00A0\'") === "\\u00A0str\\u00A0ing\\u00A0"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A2.5_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A2.5_T2.js
new file mode 100644
index 000000000..0cf26e596
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A2.5_T2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * NO-BREAK SPACE (U+00A0) may occur within strings
+ *
+ * @path ch07/7.2/S7.2_A2.5_T2.js
+ * @description Use real NO-BREAK SPACE
+ */
+
+//CHECK#1
+if (" str ing " !== "\u00A0str\u00A0ing\u00A0") {
+ $ERROR('#1: " str ing " === "\\u00A0str\\u00A0ing\\u00A0"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A3.1_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A3.1_T1.js
new file mode 100644
index 000000000..c8eae5be2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A3.1_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comment can contain HORIZONTAL TAB (U+0009)
+ *
+ * @path ch07/7.2/S7.2_A3.1_T1.js
+ * @description Use HORIZONTAL TAB(\u0009)
+ */
+
+// CHECK#1
+eval("//\u0009 single line \u0009 comment \u0009");
+
+//CHECK#2
+var x = 0;
+eval("//\u0009 single line \u0009 comment \u0009 x = 1;");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("//\\u0009 single line \\u0009 comment \\u0009 x = 1;"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A3.1_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A3.1_T2.js
new file mode 100644
index 000000000..b5b479240
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A3.1_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comment can contain HORIZONTAL TAB (U+0009)
+ *
+ * @path ch07/7.2/S7.2_A3.1_T2.js
+ * @description Use real HORIZONTAL TAB
+ */
+
+//CHECK#1
+var x = 0;
+// single line comment x = 1;
+if (x !== 0) {
+ $ERROR('#1: var x = 0; // single line comment x = 1; x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A3.2_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A3.2_T1.js
new file mode 100644
index 000000000..435a2493f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A3.2_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comment can contain VERTICAL TAB (U+000B)
+ *
+ * @path ch07/7.2/S7.2_A3.2_T1.js
+ * @description Use VERTICAL TAB(\u000B)
+ */
+
+// CHECK#1
+eval("//\u000B single line \u000B comment \u000B");
+
+//CHECK#2
+var x = 0;
+eval("//\u000B single line \u000B comment \u000B x = 1;");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("//\\u000B single line \\u000B comment \\u000B x = 1;"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A3.2_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A3.2_T2.js
new file mode 100644
index 000000000..cfdd6bc0a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A3.2_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comment can contain VERTICAL TAB (U+000B)
+ *
+ * @path ch07/7.2/S7.2_A3.2_T2.js
+ * @description Use real VERTICAL TAB
+ */
+
+//CHECK#1
+var x = 0;
+// single line comment x = 1;
+if (x !== 0) {
+ $ERROR('#1: var x = 0; // single line comment x = 1; x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A3.3_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A3.3_T1.js
new file mode 100644
index 000000000..260d07073
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A3.3_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comment can contain FORM FEED (U+000C)
+ *
+ * @path ch07/7.2/S7.2_A3.3_T1.js
+ * @description Use FORM FEED(\u000C)
+ */
+
+// CHECK#1
+eval("//\u000C single line \u000C comment \u000C");
+
+//CHECK#2
+var x = 0;
+eval("//\u000C single line \u000C comment \u000C x = 1;");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("//\\u000C single line \\u000C comment \\u000C x = 1;"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A3.3_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A3.3_T2.js
new file mode 100644
index 000000000..f1ce32510
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A3.3_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comment can contain FORM FEED (U+000C)
+ *
+ * @path ch07/7.2/S7.2_A3.3_T2.js
+ * @description Use real FORM FEED
+ */
+
+//CHECK#1
+var x = 0;
+// single line comment x = 1;
+if (x !== 0) {
+ $ERROR('#1: var x = 0; // single line comment x = 1; x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A3.4_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A3.4_T1.js
new file mode 100644
index 000000000..41264606b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A3.4_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comment can contain SPACE (U+0020)
+ *
+ * @path ch07/7.2/S7.2_A3.4_T1.js
+ * @description Use SPACE(\u0020)
+ */
+
+// CHECK#1
+eval("//\u0020 single line \u0020 comment \u0020");
+
+//CHECK#2
+var x = 0;
+eval("//\u0020 single line \u0020 comment \u0020 x = 1;");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("//\\u0020 single line \\u0020 comment \\u0020 x = 1;"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A3.4_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A3.4_T2.js
new file mode 100644
index 000000000..bfc4650fe
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A3.4_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comment can contain SPACE (U+0020)
+ *
+ * @path ch07/7.2/S7.2_A3.4_T2.js
+ * @description Use real SPACE
+ */
+
+//CHECK#1
+var x = 0;
+// single line comment x = 1;
+if (x !== 0) {
+ $ERROR('#1: var x = 0; // single line comment x = 1; x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A3.5_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A3.5_T1.js
new file mode 100644
index 000000000..6d12abddf
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A3.5_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comment can contain NO-BREAK SPACE (U+00A0)
+ *
+ * @path ch07/7.2/S7.2_A3.5_T1.js
+ * @description Use NO-BREAK SPACE(\u00A0)
+ */
+
+// CHECK#1
+eval("//\u00A0 single line \u00A0 comment \u00A0");
+
+//CHECK#2
+var x = 0;
+eval("//\u00A0 single line \u00A0 comment \u00A0 x = 1;");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("//\\u00A0 single line \\u00A0 comment \\u00A0 x = 1;"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A3.5_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A3.5_T2.js
new file mode 100644
index 000000000..2085a3b38
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A3.5_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comment can contain NO-BREAK SPACE (U+00A0)
+ *
+ * @path ch07/7.2/S7.2_A3.5_T2.js
+ * @description Use real NO-BREAK SPACE
+ */
+
+//CHECK#1
+var x = 0;
+// single line comment x = 1;
+if (x !== 0) {
+ $ERROR('#1: var x = 0; // single line comment x = 1; x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A4.1_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A4.1_T1.js
new file mode 100644
index 000000000..6881a144f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A4.1_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain HORIZONTAL TAB (U+0009)
+ *
+ * @path ch07/7.2/S7.2_A4.1_T1.js
+ * @description Use HORIZONTAL TAB(\u0009)
+ */
+
+// CHECK#1
+eval("/*\u0009 multi line \u0009 comment \u0009*/");
+
+//CHECK#2
+var x = 0;
+eval("/*\u0009 multi line \u0009 comment \u0009 x = 1;*/");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("/*\\u0009 multi line \\u0009 comment \\u0009 x = 1;*/"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A4.1_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A4.1_T2.js
new file mode 100644
index 000000000..a7d7cb758
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A4.1_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain HORIZONTAL TAB (U+0009)
+ *
+ * @path ch07/7.2/S7.2_A4.1_T2.js
+ * @description Use real HORIZONTAL TAB
+ */
+
+/*CHECK#1*/
+var x = 0;
+/* multi line comment x = 1;*/
+if (x !== 0) {
+ $ERROR('#1: var x = 0; /* multi line comment x = 1;*/ x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A4.2_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A4.2_T1.js
new file mode 100644
index 000000000..a3361d47c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A4.2_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain VERTICAL TAB (U+000B)
+ *
+ * @path ch07/7.2/S7.2_A4.2_T1.js
+ * @description Use VERTICAL TAB(\u000B)
+ */
+
+// CHECK#1
+eval("/*\u000B multi line \u000B comment \u000B*/");
+
+//CHECK#2
+var x = 0;
+eval("/*\u000B multi line \u000B comment \u000B x = 1;*/");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("/*\\u000B multi line \\u000B comment \\u000B x = 1;*/"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A4.2_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A4.2_T2.js
new file mode 100644
index 000000000..87ef32235
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A4.2_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain VERTICAL TAB (U+000B)
+ *
+ * @path ch07/7.2/S7.2_A4.2_T2.js
+ * @description Use real VERTICAL TAB
+ */
+
+/*CHECK#1*/
+var x = 0;
+/* multi line comment x = 1;*/
+if (x !== 0) {
+ $ERROR('#1: var x = 0; /* multi line comment x = 1;*/ x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A4.3_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A4.3_T1.js
new file mode 100644
index 000000000..689d28790
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A4.3_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain FORM FEED (U+000C)
+ *
+ * @path ch07/7.2/S7.2_A4.3_T1.js
+ * @description Use FORM FEED(\u000C)
+ */
+
+// CHECK#1
+eval("/*\u000C multi line \u000C comment \u000C*/");
+
+//CHECK#2
+var x = 0;
+eval("/*\u000C multi line \u000C comment \u000C x = 1;*/");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("/*\\u000C multi line \\u000C comment \\u000C x = 1;*/"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A4.3_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A4.3_T2.js
new file mode 100644
index 000000000..f6f404372
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A4.3_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain FORM FEED (U+000C)
+ *
+ * @path ch07/7.2/S7.2_A4.3_T2.js
+ * @description Use real FORM FEED
+ */
+
+/*CHECK#1*/
+var x = 0;
+/* multi line comment x = 1;*/
+if (x !== 0) {
+ $ERROR('#1: var x = 0; /* multi line comment x = 1;*/ x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A4.4_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A4.4_T1.js
new file mode 100644
index 000000000..9f5908e17
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A4.4_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain SPACE (U+0020)
+ *
+ * @path ch07/7.2/S7.2_A4.4_T1.js
+ * @description Use SPACE(\u0020)
+ */
+
+// CHECK#1
+eval("/*\u0020 multi line \u0020 comment \u0020*/");
+
+//CHECK#2
+var x = 0;
+eval("/*\u0020 multi line \u0020 comment \u0020 x = 1;*/");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("/*\\u0020 multi line \\u0020 comment \\u0020 x = 1;*/"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A4.4_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A4.4_T2.js
new file mode 100644
index 000000000..ce446861e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A4.4_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain SPACE (U+0020)
+ *
+ * @path ch07/7.2/S7.2_A4.4_T2.js
+ * @description Use real SPACE
+ */
+
+/*CHECK#1*/
+var x = 0;
+/* multi line comment x = 1;*/
+if (x !== 0) {
+ $ERROR('#1: var x = 0; /* multi line comment x = 1;*/ x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A4.5_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A4.5_T1.js
new file mode 100644
index 000000000..cef5216e3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A4.5_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain NO-BREAK SPACE (U+00A0)
+ *
+ * @path ch07/7.2/S7.2_A4.5_T1.js
+ * @description Use NO-BREAK SPACE(\u00A0)
+ */
+
+// CHECK#1
+eval("/*\u00A0 multi line \u00A0 comment \u00A0*/");
+
+//CHECK#2
+var x = 0;
+eval("/*\u00A0 multi line \u00A0 comment \u00A0 x = 1;*/");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("/*\\u00A0 multi line \\u00A0 comment \\u00A0 x = 1;*/"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A4.5_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A4.5_T2.js
new file mode 100644
index 000000000..c4457c432
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A4.5_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain NO-BREAK SPACE (U+00A0)
+ *
+ * @path ch07/7.2/S7.2_A4.5_T2.js
+ * @description Use real NO-BREAK SPACE
+ */
+
+/*CHECK#1*/
+var x = 0;
+/* multi line comment x = 1;*/
+if (x !== 0) {
+ $ERROR('#1: var x = 0; /* multi line comment x = 1;*/ x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A5_T1.js b/js/src/tests/test262/ch07/7.2/S7.2_A5_T1.js
new file mode 100644
index 000000000..6fb19c55d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A5_T1.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * White space cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.2/S7.2_A5_T1.js
+ * @description Use TAB (U+0009)
+ * @negative
+ */
+
+var\u0009x;
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A5_T2.js b/js/src/tests/test262/ch07/7.2/S7.2_A5_T2.js
new file mode 100644
index 000000000..1036b4ffa
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A5_T2.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * White space cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.2/S7.2_A5_T2.js
+ * @description Use VERTICAL TAB (U+000B)
+ * @negative
+ */
+
+var\u000Bx;
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A5_T3.js b/js/src/tests/test262/ch07/7.2/S7.2_A5_T3.js
new file mode 100644
index 000000000..4eb8212cd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A5_T3.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * White space cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.2/S7.2_A5_T3.js
+ * @description Use FORM FEED (U+000C)
+ * @negative
+ */
+
+var\u000Cx;
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A5_T4.js b/js/src/tests/test262/ch07/7.2/S7.2_A5_T4.js
new file mode 100644
index 000000000..9a47a618d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A5_T4.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * White space cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.2/S7.2_A5_T4.js
+ * @description Use SPACE (U+0020)
+ * @negative
+ */
+
+var\u0020x;
+
diff --git a/js/src/tests/test262/ch07/7.2/S7.2_A5_T5.js b/js/src/tests/test262/ch07/7.2/S7.2_A5_T5.js
new file mode 100644
index 000000000..5076c3b24
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/S7.2_A5_T5.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * White space cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.2/S7.2_A5_T5.js
+ * @description Use NO-BREAK SPACE (U+00A0)
+ * @negative
+ */
+
+var\u00A0x;
+
diff --git a/js/src/tests/test262/ch07/7.2/browser.js b/js/src/tests/test262/ch07/7.2/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/browser.js
diff --git a/js/src/tests/test262/ch07/7.2/shell.js b/js/src/tests/test262/ch07/7.2/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.2/shell.js
diff --git a/js/src/tests/test262/ch07/7.3/7.3-1.js b/js/src/tests/test262/ch07/7.3/7.3-1.js
new file mode 100644
index 000000000..3309e649a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-1.js
@@ -0,0 +1,16 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-1.js
+ * @description 7.3 - ES5 recognizes the character <LS> (\u2028) as line terminators when parsing statements
+ */
+
+
+function testcase() {
+ eval("var test7_3_1\u2028prop = 66;");
+ return (prop === 66) && ((typeof test7_3_1) === "undefined");
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-10.js b/js/src/tests/test262/ch07/7.3/7.3-10.js
new file mode 100644
index 000000000..141841b9c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-10.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-10.js
+ * @description 7.3 - ES5 recognizes the character <PS> (\u2029) as a NonEscapeCharacter
+ */
+
+
+function testcase() {
+ try {
+ eval("var prop = \\u2029;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-11.js b/js/src/tests/test262/ch07/7.3/7.3-11.js
new file mode 100644
index 000000000..42116da20
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-11.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-11.js
+ * @description 7.3 - ES5 specifies that a multiline comment that contains a line terminator character <LS> (\u2028) must be treated as a single line terminator for the purposes of semicolon insertion
+ */
+
+
+function testcase() {
+ /*MultiLine
+ Comments
+ \u2028 var = ;
+ */
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-12.js b/js/src/tests/test262/ch07/7.3/7.3-12.js
new file mode 100644
index 000000000..b993f5bde
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-12.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-12.js
+ * @description 7.3 - ES5 specifies that a multiline comment that contains a line terminator character <PS> (\u2029) must be treated as a single line terminator for the purposes of semicolon insertion
+ */
+
+
+function testcase() {
+ /*MultiLine
+ Comments
+ \u2029 var = ;
+ */
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-13.js b/js/src/tests/test262/ch07/7.3/7.3-13.js
new file mode 100644
index 000000000..d7f941c38
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-13.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-13.js
+ * @description 7.3 - ES5 specifies that a multiline comment that contains a line terminator character <CR> (\u000D) must be treated as a single line terminator for the purposes of semicolon insertion
+ */
+
+
+function testcase() {
+ /*MultiLine
+ Comments
+ \u000D var = ;
+ */
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-14.js b/js/src/tests/test262/ch07/7.3/7.3-14.js
new file mode 100644
index 000000000..8f973ae06
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-14.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-14.js
+ * @description 7.3 - ES5 specifies that a multiline comment that contains a line terminator character <LF> (\u000A) must be treated as a single line terminator for the purposes of semicolon insertion
+ */
+
+
+function testcase() {
+ /*MultiLine
+ Comments
+ \u000A var = ;
+ */
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-15.js b/js/src/tests/test262/ch07/7.3/7.3-15.js
new file mode 100644
index 000000000..7dc88a644
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-15.js
@@ -0,0 +1,16 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-15.js
+ * @description 7.3 - ES5 recognize <BOM> (\uFFFF) as a whitespace character
+ */
+
+
+function testcase() {
+ var prop = "a\uFFFFa";
+ return prop.length === 3 && prop !== "aa" && prop[1] === "\uFFFF";
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-2.js b/js/src/tests/test262/ch07/7.3/7.3-2.js
new file mode 100644
index 000000000..95fb24280
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-2.js
@@ -0,0 +1,16 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-2.js
+ * @description 7.3 - ES5 recognizes the character <PS> (\u2029) as line terminators when parsing statements
+ */
+
+
+function testcase() {
+ eval("var test7_3_2\u2029prop = 66;");
+ return (prop===66) && ((typeof test7_3_2) === "undefined");
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-3.js b/js/src/tests/test262/ch07/7.3/7.3-3.js
new file mode 100644
index 000000000..5a05cd16e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-3.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-3.js
+ * @description 7.3 - ES5 recognizes the character <LS> (\u2028) as terminating SingleLineComments
+ */
+
+
+function testcase() {
+ try {
+ eval("//Single Line Comments\u2028 var =;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-4.js b/js/src/tests/test262/ch07/7.3/7.3-4.js
new file mode 100644
index 000000000..41285cb46
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-4.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-4.js
+ * @description 7.3 - ES5 recognizes the character <PS> (\u2029) as terminating SingleLineComments
+ */
+
+
+function testcase() {
+ try {
+ eval("//Single Line Comments\u2029 var =;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-5.js b/js/src/tests/test262/ch07/7.3/7.3-5.js
new file mode 100644
index 000000000..ad65ebbf2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-5.js
@@ -0,0 +1,16 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-5.js
+ * @description 7.3 - ES5 recognizes the character <LS> (\u2028) as terminating string literal
+ */
+
+
+function testcase() {
+ var prop = "66\u2028123";
+ return prop === "66\u2028123" && prop[2] === "\u2028" && prop.length === 6;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-6.js b/js/src/tests/test262/ch07/7.3/7.3-6.js
new file mode 100644
index 000000000..5035eae1c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-6.js
@@ -0,0 +1,16 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-6.js
+ * @description 7.3 - ES5 recognizes the character <PS> (\u2029) as terminating string literal
+ */
+
+
+function testcase() {
+ var prop = "66\u2029123";
+ return prop === "66\u2029123" && prop[2] === "\u2029" && prop.length === 6;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-7.js b/js/src/tests/test262/ch07/7.3/7.3-7.js
new file mode 100644
index 000000000..641117ddf
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-7.js
@@ -0,0 +1,21 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-7.js
+ * @description 7.3 - ES5 recognizes the character <LS> (\u2028) as terminating regular expression literals
+ */
+
+
+function testcase() {
+ try {
+ eval("var regExp = /[\u2028]/");
+ regExp.test("");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-8.js b/js/src/tests/test262/ch07/7.3/7.3-8.js
new file mode 100644
index 000000000..7ac4481b1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-8.js
@@ -0,0 +1,21 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-8.js
+ * @description 7.3 - ES5 recognizes the character <PS> (\u2029) as terminating regular expression literals
+ */
+
+
+function testcase() {
+ try {
+ eval("var regExp = /[\u2029]/");
+ regExp.test("");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/7.3-9.js b/js/src/tests/test262/ch07/7.3/7.3-9.js
new file mode 100644
index 000000000..53e964491
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/7.3-9.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.3/7.3-9.js
+ * @description 7.3 - ES5 recognizes the character <LS> (\u2028) as a NonEscapeCharacter
+ */
+
+
+function testcase() {
+ try {
+ eval("var prop = \\u2028;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A1.1_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A1.1_T1.js
new file mode 100644
index 000000000..b5814c2e0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A1.1_T1.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * LINE FEED (U+000A) may occur between any two tokens
+ *
+ * @path ch07/7.3/S7.3_A1.1_T1.js
+ * @description Insert LINE FEED (\u000A and \n) between tokens of var x=1
+ */
+
+// CHECK#1
+eval("\u000Avar\u000Ax\u000A=\u000A1\u000A");
+if (x !== 1) {
+ $ERROR('#1: eval("\\u000Avar\\u000Ax\\u000A=\\u000A1\\u000A"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+eval("\u000A" + "var" + "\u000A" + "x" + "\u000A" + "=" + "\u000A" + "1" + "\u000A");
+if (x !== 1) {
+ $ERROR('#2: eval("\\u000A" + "var" + "\\u000A" + "x" + "\\u000A" + "=" + "\\u000A" + "1" + "\\u000A"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#3
+eval("\nvar\nx\n=\n1\n");
+if (x !== 1) {
+ $ERROR('#3: eval("\\nvar\\nx\\n=\\n1\\n"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#4
+eval("\n" + "var" + "\n" + "x" + "\n" + "=" + "\n" + "1" + "\n");
+if (x !== 1) {
+ $ERROR('#4: eval("\\n" + "var" + "\\n" + "x" + "\\n" + "=" + "\\n" + "1" + "\\n"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#5
+eval("\u000A" + "var" + "\n" + "x" + "\u000A" + "=" + "\n" + "1" + "\u000A");
+if (x !== 1) {
+ $ERROR('#5: eval("\\u000A" + "var" + "\\n" + "x" + "\\u000A" + "=" + "\\n" + "1" + "\\u000A"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A1.1_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A1.1_T2.js
new file mode 100644
index 000000000..b4780361b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A1.1_T2.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * LINE FEED (U+000A) may occur between any two tokens
+ *
+ * @path ch07/7.3/S7.3_A1.1_T2.js
+ * @description Insert real LINE FEED between tokens of var x=1
+ */
+
+//CHECK#1
+var
+x
+=
+1;
+if (x !== 1) {
+ $ERROR('#1: var\\nx\\n=\\n1\\n; x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A1.2_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A1.2_T1.js
new file mode 100644
index 000000000..bb11122f7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A1.2_T1.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CARRIAGE RETURN (U+000D) may occur between any two tokens
+ *
+ * @path ch07/7.3/S7.3_A1.2_T1.js
+ * @description Insert CARRIAGE RETURN (\u000D and \r) between tokens of var x=1
+ */
+
+// CHECK#1
+eval("\u000Dvar\u000Dx\u000D=\u000D1\u000D");
+if (x !== 1) {
+ $ERROR('#1: eval("\\u000Dvar\\u000Dx\\u000D=\\u000D1\\u000D"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+eval("\u000D" + "var" + "\u000D" + "x" + "\u000D" + "=" + "\u000D" + "1" + "\u000D");
+if (x !== 1) {
+ $ERROR('#2: eval("\\u000D" + "var" + "\\u000D" + "x" + "\\u000D" + "=" + "\\u000D" + "1" + "\\u000D"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#3
+eval("\rvar\rx\r=\r1\r");
+if (x !== 1) {
+ $ERROR('#3: eval("\\rvar\\rx\\r=\\r1\\r"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#4
+eval("\r" + "var" + "\r" + "x" + "\r" + "=" + "\r" + "1" + "\r");
+if (x !== 1) {
+ $ERROR('#4: eval("\\r" + "var" + "\\r" + "x" + "\\r" + "=" + "\\r" + "1" + "\\r"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#5
+eval("\u000D" + "var" + "\r" + "x" + "\u000D" + "=" + "\r" + "1" + "\u000D");
+if (x !== 1) {
+ $ERROR('#5: eval("\\u000D" + "var" + "\\r" + "x" + "\\u000D" + "=" + "\\r" + "1" + "\\u000D"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A1.2_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A1.2_T2.js
new file mode 100644
index 000000000..52fb9b52a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A1.2_T2.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CARRIAGE RETURN (U+000D) may occur between any two tokens
+ *
+ * @path ch07/7.3/S7.3_A1.2_T2.js
+ * @description Insert real CARRIAGE RETURN between tokens of var x=1
+ */
+
+//CHECK#1
+var
+x
+=
+1;
+if (x !== 1) {
+ $ERROR('#1: var\\nx\\n=\\n1\\n; x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A1.3.js b/js/src/tests/test262/ch07/7.3/S7.3_A1.3.js
new file mode 100644
index 000000000..bf8281937
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A1.3.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * LINE SEPARATOR (U+2028) may occur between any two tokens
+ *
+ * @path ch07/7.3/S7.3_A1.3.js
+ * @description Insert LINE SEPARATOR (\u2028) between tokens of var x=1
+ */
+
+// CHECK#1
+eval("\u2028var\u2028x\u2028=\u20281\u2028");
+if (x !== 1) {
+ $ERROR('#1: eval("\\u2028var\\u2028x\\u2028=\\u20281\\u2028"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+eval("\u2028" + "var" + "\u2028" + "x" + "\u2028" + "=" + "\u2028" + "1" + "\u2028");
+if (x !== 1) {
+ $ERROR('#2: eval("\\u2028" + "var" + "\\u2028" + "x" + "\\u2028" + "=" + "\\u2028" + "1" + "\\u2028"); x === 1. Actual: ' + (x));
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A1.4.js b/js/src/tests/test262/ch07/7.3/S7.3_A1.4.js
new file mode 100644
index 000000000..f761d0376
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A1.4.js
@@ -0,0 +1,25 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * PARAGRAPH SEPARATOR (U+2029) may occur between any two tokens
+ *
+ * @path ch07/7.3/S7.3_A1.4.js
+ * @description Insert PARAGRAPH SEPARATOR (\u2029) between tokens of var x=1
+ */
+
+// CHECK#1
+eval("\u2029var\u2029x\u2029=\u20291\u2029");
+if (x !== 1) {
+ $ERROR('#1: eval("\\u2029var\\u2029x\\u2029=\\u20291\\u2029"); x === 1. Actual: ' + (x));
+}
+
+//CHECK#2
+eval("\u2029" + "var" + "\u2029" + "x" + "\u2029" + "=" + "\u2029" + "1" + "\u2029");
+if (x !== 1) {
+ $ERROR('#2: eval("\\u2029" + "var" + "\\u2029" + "x" + "\\u2029" + "=" + "\\u2029" + "1" + "\\u2029"); x === 1. Actual: ' + (x));
+}
+
+
+
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A2.1_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A2.1_T1.js
new file mode 100644
index 000000000..16cb25e69
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A2.1_T1.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * LINE FEED (U+000A) within strings is not allowed
+ *
+ * @path ch07/7.3/S7.3_A2.1_T1.js
+ * @description Insert LINE FEED (\u000A) into string
+ * @negative
+ */
+
+// CHECK#1
+if (eval("'\u000Astr\u000Aing\u000A'") === "\u000Astr\u000Aing\u000A") {
+ $ERROR('#1: eval("\'\\u000Astr\\u000Aing\\u000A\'") === "\\u000Astr\\u000Aing\\u000A"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A2.1_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A2.1_T2.js
new file mode 100644
index 000000000..f587ec97e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A2.1_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * LINE FEED (U+000A) within strings is not allowed
+ *
+ * @path ch07/7.3/S7.3_A2.1_T2.js
+ * @description Use real LINE FEED into string
+ * @negative
+ */
+
+//CHECK#1
+"
+str
+ing
+";
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A2.2_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A2.2_T1.js
new file mode 100644
index 000000000..b58d20227
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A2.2_T1.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CARRIAGE RETURN (U+000D) within strings is not allowed
+ *
+ * @path ch07/7.3/S7.3_A2.2_T1.js
+ * @description Insert CARRIAGE RETURN (\u000D) into string
+ * @negative
+ */
+
+// CHECK#1
+if (eval("'\u000Dstr\u000Ding\u000D'") === "\u000Dstr\u000Ding\u000D") {
+ $ERROR('#1: eval("\'\\u000Dstr\\u000Ding\\u000D\'") === "\\u000Dstr\\u000Ding\\u000D"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A2.2_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A2.2_T2.js
new file mode 100644
index 000000000..9e8c5e30d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A2.2_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CARRIAGE RETURN (U+000D) within strings is not allowed
+ *
+ * @path ch07/7.3/S7.3_A2.2_T2.js
+ * @description Insert real CARRIAGE RETURN into string
+ * @negative
+ */
+
+//CHECK#1
+"
+str
+ing
+";
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A2.3.js b/js/src/tests/test262/ch07/7.3/S7.3_A2.3.js
new file mode 100644
index 000000000..645dfaaf3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A2.3.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * LINE SEPARATOR (U+2028) within strings is not allowed
+ *
+ * @path ch07/7.3/S7.3_A2.3.js
+ * @description Insert LINE SEPARATOR (\u2028) into string
+ * @negative
+ */
+
+// CHECK#1
+if (eval("'\u2028str\u2028ing\u2028'") === "\u2028str\u2028ing\u2028") {
+ $ERROR('#1: eval("\'\\u2028str\\u2028ing\\u2028\'") === "\\u2028str\\u2028ing\\u2028"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A2.4.js b/js/src/tests/test262/ch07/7.3/S7.3_A2.4.js
new file mode 100644
index 000000000..00e185037
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A2.4.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * PARAGRAPH SEPARATOR (U+2029) within strings is not allowed
+ *
+ * @path ch07/7.3/S7.3_A2.4.js
+ * @description Insert PARAGRAPH SEPARATOR (\u2029) into string
+ * @negative
+ */
+
+// CHECK#1
+if (eval("'\u2029str\u2029ing\u2029'") === "\u2029str\u2029ing\u2029") {
+ $ERROR('#1: eval("\'\\u2029str\\u2029ing\\u2029\'") === "\\u2029str\\u2029ing\\u2029"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A3.1_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A3.1_T1.js
new file mode 100644
index 000000000..f44c153cf
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A3.1_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can not contain LINE FEED (U+000A) inside
+ *
+ * @path ch07/7.3/S7.3_A3.1_T1.js
+ * @description Insert LINE FEED (\u000A) into single line comment
+ * @negative
+ */
+
+// CHECK#1
+eval("// single line \u000A comment");
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A3.1_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A3.1_T2.js
new file mode 100644
index 000000000..cb808a87a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A3.1_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can not contain LINE FEED (U+000A) inside
+ *
+ * @path ch07/7.3/S7.3_A3.1_T2.js
+ * @description Insert LINE FEED (\u000A) into begin of single line comment
+ * @negative
+ */
+
+// CHECK#1
+eval("//\u000A single line comment");
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A3.1_T3.js b/js/src/tests/test262/ch07/7.3/S7.3_A3.1_T3.js
new file mode 100644
index 000000000..6394c939c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A3.1_T3.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can not contain LINE FEED (U+000A) inside
+ *
+ * @path ch07/7.3/S7.3_A3.1_T3.js
+ * @description Insert real LINE FEED into single line comment
+ * @negative
+ */
+
+// CHECK#1
+//single
+line comment
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A3.2_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A3.2_T1.js
new file mode 100644
index 000000000..2fa270693
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A3.2_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can not contain CARRIAGE RETURN (U+000D) inside
+ *
+ * @path ch07/7.3/S7.3_A3.2_T1.js
+ * @description Insert CARRIAGE RETURN (\u000D) into single line comment
+ * @negative
+ */
+
+// CHECK#1
+eval("// single line \u000D comment");
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A3.2_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A3.2_T2.js
new file mode 100644
index 000000000..9ffdc5cf9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A3.2_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can not contain CARRIAGE RETURN (U+000D) inside
+ *
+ * @path ch07/7.3/S7.3_A3.2_T2.js
+ * @description Insert CARRIAGE RETURN (\u000D) into begin of single line comment
+ * @negative
+ */
+
+// CHECK#1
+eval("//\u000D single line comment");
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A3.2_T3.js b/js/src/tests/test262/ch07/7.3/S7.3_A3.2_T3.js
new file mode 100644
index 000000000..d16ee33be
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A3.2_T3.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can not contain CARRIAGE RETURN (U+000D) inside
+ *
+ * @path ch07/7.3/S7.3_A3.2_T3.js
+ * @description Insert real CARRIAGE RETURN into single line comment
+ * @negative
+ */
+
+// CHECK#1
+//single
+line comment
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A3.3_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A3.3_T1.js
new file mode 100644
index 000000000..ae926c456
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A3.3_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can not contain LINE SEPARATOR (U+2028) inside
+ *
+ * @path ch07/7.3/S7.3_A3.3_T1.js
+ * @description Insert LINE SEPARATOR (\u2028) into single line comment
+ * @negative
+ */
+
+// CHECK#1
+eval("// single line \u2028 comment");
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A3.3_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A3.3_T2.js
new file mode 100644
index 000000000..43ff45843
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A3.3_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can not contain LINE SEPARATOR (U+2028) inside
+ *
+ * @path ch07/7.3/S7.3_A3.3_T2.js
+ * @description Insert LINE SEPARATOR (\u2028) into begin of single line comment
+ * @negative
+ */
+
+// CHECK#1
+eval("//\u2028 single line comment");
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A3.4_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A3.4_T1.js
new file mode 100644
index 000000000..1a8fae53f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A3.4_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can not contain PARAGRAPH SEPARATOR (U+2029) inside
+ *
+ * @path ch07/7.3/S7.3_A3.4_T1.js
+ * @description Insert PARAGRAPH SEPARATOR (\u2029) into single line comment
+ * @negative
+ */
+
+// CHECK#1
+eval("// single line \u2029 comment");
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A3.4_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A3.4_T2.js
new file mode 100644
index 000000000..8a6c59d8d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A3.4_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can not contain PARAGRAPH SEPARATOR (U+2029) inside
+ *
+ * @path ch07/7.3/S7.3_A3.4_T2.js
+ * @description Insert PARAGRAPH SEPARATOR (\u2029) into begin of single line comment
+ * @negative
+ */
+
+// CHECK#1
+eval("//\u2029 single line comment");
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A4_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A4_T1.js
new file mode 100644
index 000000000..df523f9a3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A4_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can contain Line Terminator at the end of line
+ *
+ * @path ch07/7.3/S7.3_A4_T1.js
+ * @description Insert LINE FEED (U+000A) into the end of single line comment
+ */
+
+// CHECK#1
+eval("// single line comment\u000A");
+
+// CHECK#2
+var x = 0;
+eval("// single line comment\u000A x = 1;");
+if (x !== 1) {
+ $ERROR('#1: var x = 0; eval("// single line comment\\u000A x = 1;"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A4_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A4_T2.js
new file mode 100644
index 000000000..d99dc7dc1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A4_T2.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can contain Line Terminator at the end of line
+ *
+ * @path ch07/7.3/S7.3_A4_T2.js
+ * @description Insert CARRIAGE RETURN (U+000D) into the end of single line comment
+ */
+
+// CHECK#1
+eval("// single line comment\u000D");
+
+// CHECK#2
+var x = 0;
+eval("// single line comment\u000D x = 1;");
+if (x !== 1) {
+ $ERROR('#1: var x = 0; eval("// single line comment\\u000D x = 1;"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A4_T3.js b/js/src/tests/test262/ch07/7.3/S7.3_A4_T3.js
new file mode 100644
index 000000000..5677bc0cd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A4_T3.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can contain Line Terminator at the end of line
+ *
+ * @path ch07/7.3/S7.3_A4_T3.js
+ * @description Insert LINE SEPARATOR (U+2028) into the end of single line comment
+ */
+
+// CHECK#1
+eval("// single line comment\u2028");
+
+// CHECK#2
+var x = 0;
+eval("// single line comment\u2028 x = 1;");
+if (x !== 1) {
+ $ERROR('#1: var x = 0; eval("// single line comment\\u2028 x = 1;"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A4_T4.js b/js/src/tests/test262/ch07/7.3/S7.3_A4_T4.js
new file mode 100644
index 000000000..c34f0e15e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A4_T4.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can contain Line Terminator at the end of line
+ *
+ * @path ch07/7.3/S7.3_A4_T4.js
+ * @description Insert PARAGRAPH SEPARATOR (U+2029) into the end of single line comment
+ */
+
+// CHECK#1
+eval("// single line comment\u2029");
+
+// CHECK#2
+var x = 0;
+eval("// single line comment\u2029 x = 1;");
+if (x !== 1) {
+ $ERROR('#1: var x = 0; eval("// single line comment\\u2029 x = 1;"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A5.1_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A5.1_T1.js
new file mode 100644
index 000000000..fe8d7173e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A5.1_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain LINE FEED (U+000A)
+ *
+ * @path ch07/7.3/S7.3_A5.1_T1.js
+ * @description Insert LINE FEED (U+000A) into multi line comment
+ */
+
+// CHECK#1
+eval("/*\u000A multi line \u000A comment \u000A*/");
+
+//CHECK#2
+var x = 0;
+eval("/*\u000A multi line \u000A comment \u000A x = 1;*/");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("/*\\u000A multi line \\u000A comment \\u000A x = 1;*/"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A5.1_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A5.1_T2.js
new file mode 100644
index 000000000..661df860e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A5.1_T2.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain LINE FEED (U+000A)
+ *
+ * @path ch07/7.3/S7.3_A5.1_T2.js
+ * @description Insert real LINE FEED into multi line comment
+ */
+
+/*CHECK#1*/
+var x = 0;
+/*
+multi
+line
+comment
+x = 1;
+*/
+if (x !== 0) {
+ $ERROR('#1: var x = 0; /*\\nmulti\\nline\\ncomment\\nx = 1;\\n*/ x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A5.2_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A5.2_T1.js
new file mode 100644
index 000000000..20c5dd194
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A5.2_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain CARRIAGE RETURN (U+000D)
+ *
+ * @path ch07/7.3/S7.3_A5.2_T1.js
+ * @description Insert CARRIAGE RETURN (U+000D) into multi line comment
+ */
+
+// CHECK#1
+eval("/*\u000D multi line \u000D comment \u000D*/");
+
+//CHECK#2
+var x = 0;
+eval("/*\u000D multi line \u000D comment \u000D x = 1;*/");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("/*\\u000D multi line \\u000D comment \\u000D x = 1;*/"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A5.2_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A5.2_T2.js
new file mode 100644
index 000000000..a83a2be2d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A5.2_T2.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain CARRIAGE RETURN (U+000D)
+ *
+ * @path ch07/7.3/S7.3_A5.2_T2.js
+ * @description Insert real CARRIAGE RETURN into multi line comment
+ */
+
+/*CHECK#1*/
+var x = 0;
+/*
+multi
+line
+comment
+x = 1;
+*/
+if (x !== 0) {
+ $ERROR('#1: var x = 0; /*\\rmulti\\rline\\rcomment\\rx = 1;\\r*/ x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A5.3.js b/js/src/tests/test262/ch07/7.3/S7.3_A5.3.js
new file mode 100644
index 000000000..501392bc0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A5.3.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain LINE SEPARATOR (U+2028)
+ *
+ * @path ch07/7.3/S7.3_A5.3.js
+ * @description Insert LINE SEPARATOR (U+2028) into multi line comment
+ */
+
+// CHECK#1
+eval("/*\u2028 multi line \u2028 comment \u2028*/");
+
+//CHECK#2
+var x = 0;
+eval("/*\u2028 multi line \u2028 comment \u2028 x = 1;*/");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("/*\\u2028 multi line \\u2028 comment \\u2028 x = 1;*/"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A5.4.js b/js/src/tests/test262/ch07/7.3/S7.3_A5.4.js
new file mode 100644
index 000000000..8f8597477
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A5.4.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comment can contain LINE SEPARATOR (U+2029)
+ *
+ * @path ch07/7.3/S7.3_A5.4.js
+ * @description Insert PARAGRAPH SEPARATOR (U+2029) into multi line comment
+ */
+
+// CHECK#1
+eval("/*\u2029 multi line \u2029 comment \u2029*/");
+
+//CHECK#2
+var x = 0;
+eval("/*\u2029 multi line \u2029 comment \u2029 x = 1;*/");
+if (x !== 0) {
+ $ERROR('#1: var x = 0; eval("/*\\u2029 multi line \\u2029 comment \\u2029 x = 1;*/"); x === 0. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A6_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A6_T1.js
new file mode 100644
index 000000000..89b3751f6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A6_T1.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.3/S7.3_A6_T1.js
+ * @description Insert LINE FEED (U+000A) in var x
+ * @negative
+ */
+
+var\u000Ax;
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A6_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A6_T2.js
new file mode 100644
index 000000000..3dc52d206
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A6_T2.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.3/S7.3_A6_T2.js
+ * @description Insert CARRIAGE RETURN (U+000D) in var x
+ * @negative
+ */
+
+var\u000Dx;
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A6_T3.js b/js/src/tests/test262/ch07/7.3/S7.3_A6_T3.js
new file mode 100644
index 000000000..62d6ef10f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A6_T3.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.3/S7.3_A6_T3.js
+ * @description Insert LINE SEPARATOR (U+2028) in var x
+ * @negative
+ */
+
+var\u2028x;
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A6_T4.js b/js/src/tests/test262/ch07/7.3/S7.3_A6_T4.js
new file mode 100644
index 000000000..cd5d2d40a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A6_T4.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.3/S7.3_A6_T4.js
+ * @description Insert PARAGRAPH SEPARATOR (U+2029) in var x
+ * @negative
+ */
+
+var\u2029x;
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A7_T1.js b/js/src/tests/test262/ch07/7.3/S7.3_A7_T1.js
new file mode 100644
index 000000000..861b737e4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A7_T1.js
@@ -0,0 +1,57 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminators between operators are allowed
+ *
+ * @path ch07/7.3/S7.3_A7_T1.js
+ * @description Insert Line Terminator in var x=y+z
+ */
+
+// CHECK#1
+var y=2;
+var z=3;
+var
+x
+=
+y
++
+z
+;
+if (x !== 5) {
+ $ERROR('#1: var\\nx\\n=\\ny\\n+\\nz\\n; x === 5. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#2
+var y=2;
+var z=3;
+var
+x
+=
+y
++
+z
+;
+if (x !== 5) {
+ $ERROR('#2: var\\nx\\n=\\ny\\n+\\nz\\n; x === 5. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#3
+var y=2;
+var z=3;
+eval("\u2028var\u2028x\u2028=\u2028y\u2028+\u2028z\u2028");
+if (x !== 5) {
+ $ERROR('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028+\\u2028z\\u2028"); x === 5. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#4
+var y=2;
+var z=3;
+eval("\u2029var\u2029x\u2029=\u2029y\u2029+\u2029z\u2029");
+if (x !== 5) {
+ $ERROR('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029+\\u2029z\\u2029"); x === 5. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A7_T2.js b/js/src/tests/test262/ch07/7.3/S7.3_A7_T2.js
new file mode 100644
index 000000000..cdc5801c9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A7_T2.js
@@ -0,0 +1,57 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminators between operators are allowed
+ *
+ * @path ch07/7.3/S7.3_A7_T2.js
+ * @description Insert Line Terminator in var x=y-z
+ */
+
+// CHECK#1
+var y=3;
+var z=2;
+var
+x
+=
+y
+-
+z
+;
+if (x !== 1) {
+ $ERROR('#1: var\\nx\\n=\\ny\\n-\\nz\\n; x === 1. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#2
+var y=3;
+var z=2;
+var
+x
+=
+y
+-
+z
+;
+if (x !== 1) {
+ $ERROR('#2: var\\nx\\n=\\ny\\n-\\nz\\n; x === 1. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#3
+var y=3;
+var z=2;
+eval("\u2028var\u2028x\u2028=\u2028y\u2028-\u2028z\u2028");
+if (x !== 1) {
+ $ERROR('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028-\\u2028z\\u2028"); x === 1. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#4
+var y=3;
+var z=2;
+eval("\u2029var\u2029x\u2029=\u2029y\u2029-\u2029z\u2029");
+if (x !== 1) {
+ $ERROR('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029-\\u2029z\\u2029"); x === 1. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A7_T3.js b/js/src/tests/test262/ch07/7.3/S7.3_A7_T3.js
new file mode 100644
index 000000000..1c83956da
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A7_T3.js
@@ -0,0 +1,57 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminators between operators are allowed
+ *
+ * @path ch07/7.3/S7.3_A7_T3.js
+ * @description Insert Line Terminator in var x=y*z
+ */
+
+// CHECK#1
+var y=3;
+var z=2;
+var
+x
+=
+y
+*
+z
+;
+if (x !== 6) {
+ $ERROR('#1: var\\nx\\n=\\ny\\n*\\nz\\n; x === 6. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#2
+var y=3;
+var z=2;
+var
+x
+=
+y
+*
+z
+;
+if (x !== 6) {
+ $ERROR('#2: var\\nx\\n=\\ny\\n*\\nz\\n; x === 6. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#3
+var y=3;
+var z=2;
+eval("\u2028var\u2028x\u2028=\u2028y\u2028*\u2028z\u2028");
+if (x !== 6) {
+ $ERROR('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028*\\u2028z\\u2028"); x === 6. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#4
+var y=3;
+var z=2;
+eval("\u2029var\u2029x\u2029=\u2029y\u2029*\u2029z\u2029");
+if (x !== 6) {
+ $ERROR('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029*\\u2029z\\u2029"); x === 6. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A7_T4.js b/js/src/tests/test262/ch07/7.3/S7.3_A7_T4.js
new file mode 100644
index 000000000..fad60b4cb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A7_T4.js
@@ -0,0 +1,57 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminators between operators are allowed
+ *
+ * @path ch07/7.3/S7.3_A7_T4.js
+ * @description Insert Line Terminator in var x=y/z
+ */
+
+// CHECK#1
+var y=12;
+var z=2;
+var
+x
+=
+y
+/
+z
+;
+if (x !== 6) {
+ $ERROR('#1: var\\nx\\n=\\ny\\n/\\nz\\n; x === 6. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#2
+var y=12;
+var z=2;
+var
+x
+=
+y
+/
+z
+;
+if (x !== 6) {
+ $ERROR('#2: var\\nx\\n=\\ny\\n/\\nz\\n; x === 6. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#3
+var y=12;
+var z=2;
+eval("\u2028var\u2028x\u2028=\u2028y\u2028/\u2028z\u2028");
+if (x !== 6) {
+ $ERROR('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028/\\u2028z\\u2028"); x === 6. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#4
+var y=12;
+var z=2;
+eval("\u2029var\u2029x\u2029=\u2029y\u2029/\u2029z\u2029");
+if (x !== 6) {
+ $ERROR('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029/\\u2029z\\u2029"); x === 6. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A7_T5.js b/js/src/tests/test262/ch07/7.3/S7.3_A7_T5.js
new file mode 100644
index 000000000..f7aff0122
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A7_T5.js
@@ -0,0 +1,57 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminators between operators are allowed
+ *
+ * @path ch07/7.3/S7.3_A7_T5.js
+ * @description Insert Line Terminator in var x=y%z
+ */
+
+// CHECK#1
+var y=16;
+var z=10;
+var
+x
+=
+y
+%
+z
+;
+if (x !== 6) {
+ $ERROR('#1: var\\nx\\n=\\ny\\n%\\nz\\n; x === 6. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#2
+var y=16;
+var z=10;
+var
+x
+=
+y
+%
+z
+;
+if (x !== 6) {
+ $ERROR('#2: var\\nx\\n=\\ny\\n%\\nz\\n; x === 6. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#3
+var y=16;
+var z=10;
+eval("\u2028var\u2028x\u2028=\u2028y\u2028%\u2028z\u2028");
+if (x !== 6) {
+ $ERROR('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028%\\u2028z\\u2028"); x === 6. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#4
+var y=16;
+var z=10;
+eval("\u2029var\u2029x\u2029=\u2029y\u2029%\u2029z\u2029");
+if (x !== 6) {
+ $ERROR('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029%\\u2029z\\u2029"); x === 6. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A7_T6.js b/js/src/tests/test262/ch07/7.3/S7.3_A7_T6.js
new file mode 100644
index 000000000..9dc8c0141
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A7_T6.js
@@ -0,0 +1,57 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminators between operators are allowed
+ *
+ * @path ch07/7.3/S7.3_A7_T6.js
+ * @description Insert Line Terminator in var x=y>>z
+ */
+
+// CHECK#1
+var y=16;
+var z=3;
+var
+x
+=
+y
+>>
+z
+;
+if (x !== 2) {
+ $ERROR('#1: var\\nx\\n=\\ny\\n>>\\nz\\n; x === 2. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#2
+var y=16;
+var z=3;
+var
+x
+=
+y
+>>
+z
+;
+if (x !== 2) {
+ $ERROR('#2: var\\nx\\n=\\ny\\n>>\\nz\\n; x === 2. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#3
+var y=16;
+var z=3;
+eval("\u2028var\u2028x\u2028=\u2028y\u2028>>\u2028z\u2028");
+if (x !== 2) {
+ $ERROR('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028>>\\u2028z\\u2028"); x === 2. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#4
+var y=16;
+var z=3;
+eval("\u2029var\u2029x\u2029=\u2029y\u2029>>\u2029z\u2029");
+if (x !== 2) {
+ $ERROR('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029>>\\u2029z\\u2029"); x === 2. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A7_T7.js b/js/src/tests/test262/ch07/7.3/S7.3_A7_T7.js
new file mode 100644
index 000000000..510b958c4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A7_T7.js
@@ -0,0 +1,57 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminators between operators are allowed
+ *
+ * @path ch07/7.3/S7.3_A7_T7.js
+ * @description Insert Line Terminator in var x=y<<z
+ */
+
+// CHECK#1
+var y=2;
+var z=3;
+var
+x
+=
+y
+<<
+z
+;
+if (x !== 16) {
+ $ERROR('#1: var\\nx\\n=\\ny\\n<<\\nz\\n; x === 16. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#2
+var y=2;
+var z=3;
+var
+x
+=
+y
+<<
+z
+;
+if (x !== 16) {
+ $ERROR('#2: var\\nx\\n=\\ny\\n<<\\nz\\n; x ===16 ');
+}
+x=0;
+
+// CHECK#3
+var y=2;
+var z=3;
+eval("\u2028var\u2028x\u2028=\u2028y\u2028<<\u2028z\u2028");
+if (x !== 16) {
+ $ERROR('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028<<\\u2028z\\u2028"); x === 16. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#4
+var y=2;
+var z=3;
+eval("\u2029var\u2029x\u2029=\u2029y\u2029<<\u2029z\u2029");
+if (x !== 16) {
+ $ERROR('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029<<\\u2029z\\u2029"); x === 16. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/S7.3_A7_T8.js b/js/src/tests/test262/ch07/7.3/S7.3_A7_T8.js
new file mode 100644
index 000000000..1b55b96ce
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/S7.3_A7_T8.js
@@ -0,0 +1,57 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Line Terminators between operators are allowed
+ *
+ * @path ch07/7.3/S7.3_A7_T8.js
+ * @description Insert Line Terminator in var x=y<z
+ */
+
+// CHECK#1
+var y=2;
+var z=3;
+var
+x
+=
+y
+<
+z
+;
+if (x !== true) {
+ $ERROR('#1: var\\nx\\n=\\ny\\n<\\nz\\n; x === true. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#2
+var y=2;
+var z=3;
+var
+x
+=
+y
+<
+z
+;
+if (x !== true) {
+ $ERROR('#2: var\\nx\\n=\\ny\\n<\\nz\\n; x === true. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#3
+var y=2;
+var z=3;
+eval("\u2028var\u2028x\u2028=\u2028y\u2028<\u2028z\u2028");
+if (x !== true) {
+ $ERROR('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028<\\u2028z\\u2028"); x === true. Actual: ' + (x));
+}
+x=0;
+
+// CHECK#4
+var y=2;
+var z=3;
+eval("\u2029var\u2029x\u2029=\u2029y\u2029<\u2029z\u2029");
+if (x !== true) {
+ $ERROR('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029<\\u2029z\\u2029"); x === true. Actual: ' + (x));
+}
+
diff --git a/js/src/tests/test262/ch07/7.3/browser.js b/js/src/tests/test262/ch07/7.3/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/browser.js
diff --git a/js/src/tests/test262/ch07/7.3/shell.js b/js/src/tests/test262/ch07/7.3/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.3/shell.js
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A1_T1.js b/js/src/tests/test262/ch07/7.4/S7.4_A1_T1.js
new file mode 100644
index 000000000..87bb8ce1a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A1_T1.js
@@ -0,0 +1,44 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of single line comments
+ *
+ * @path ch07/7.4/S7.4_A1_T1.js
+ * @description Create comments with any code
+ */
+
+//CHECK#1
+// $ERROR('#1: Correct interpretation single line comments');
+
+//CHECK#2
+var x = 0;
+// x = 1;
+if (x !== 0) {
+ $ERROR('#2: var x = 0; // x = 1; x === 0. Actual: ' + (x));
+}
+
+//CHECK#3
+var // y = 1;
+y;
+if (y !== undefined) {
+ $ERROR('#3: var // y = 1; \\n y; y === undefined. Actual: ' + (y));
+}
+
+//CHECK#4
+//$ERROR('#4: Correct interpretation single line comments') //$ERROR('#4: Correct interpretation single line comments'); //
+
+////CHECK#5
+//var x = 1;
+//if (x === 1) {
+// $ERROR('#5: Correct interpretation single line comments');
+//}
+
+//CHECK#6
+//var this.y = 1;
+this.y++;
+if (isNaN(y) !== true) {
+ $ERROR('#6: //var this.y = 1; \\n this.y++; y === Not-a-Number. Actual: ' + (y));
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A1_T2.js b/js/src/tests/test262/ch07/7.4/S7.4_A1_T2.js
new file mode 100644
index 000000000..4d8d8af43
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A1_T2.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of single line comments
+ *
+ * @path ch07/7.4/S7.4_A1_T2.js
+ * @description Simple test, create empty comment: ///
+ */
+
+//CHECK#1
+///
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A2_T1.js b/js/src/tests/test262/ch07/7.4/S7.4_A2_T1.js
new file mode 100644
index 000000000..97b8e6268
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A2_T1.js
@@ -0,0 +1,78 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of multi line comments
+ *
+ * @path ch07/7.4/S7.4_A2_T1.js
+ * @description Create comments with any code
+ */
+
+/*CHECK#1*/
+/* $ERROR('#1: Correct interpretation multi line comments');
+*/
+
+/*CHECK#2*/
+var x = 0;
+/* x = 1;*/
+if (x !== 0) {
+ $ERROR('#2: var x = 0; /* x = 1;*/ x === 0. Actual: ' + (x));
+}
+
+//CHECK#3
+var /* y = 1;*/
+y;
+if (y !== undefined) {
+ $ERROR('#3: var /* y = 1; */ \\n y; y === undefined. Actual: ' + (y));
+}
+
+//CHECK#4
+var /* y = 1;*/ y;
+if (y !== undefined) {
+ $ERROR('#4: var /* y = 1; */ y; y === undefined. Actual: ' + (y));
+}
+
+/*CHECK#5*/
+/*var x = 1;
+if (x === 1) {
+ $ERROR('#5: Correct interpretation multi line comments');
+}
+*/
+
+/*CHECK#6*/
+/*var this.y = 1;*/
+this.y++;
+if (isNaN(y) !== true) {
+ $ERROR('#6: /*var this.y = 1;*/ \\n this.y++; y === Not-a-Number. Actual: ' + (y));
+}
+
+//CHECK#7
+var string = "/*var y = 0*/" /* y = 1;*/
+if (string !== "/*var y = 0*/") {
+$ERROR('#7: var string = "/*var y = 0*/" /* y = 1;*/ string === "//var y = 0"');
+}
+
+//CHECK#8
+var string = "/*var y = 0" /* y = 1;*/
+if (string !== "/*var y = 0") {
+$ERROR('#8: var string = "/*var y = 0" /* y = 1;*/ string === "//var y = 0"');
+}
+
+/*CHECK#9*/
+/** $ERROR('#9: Correct interpretation multi line comments');
+*/
+
+/*CHECK#10*/
+/* $ERROR('#10: Correct interpretation multi line comments');
+**/
+
+/*CHECK#11*/
+/****** $ERROR('#11: Correct interpretation multi line comments');*********
+***********
+*
+
+
+**********
+**/
+
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A2_T2.js b/js/src/tests/test262/ch07/7.4/S7.4_A2_T2.js
new file mode 100644
index 000000000..feb4c9c2b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A2_T2.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of multi line comments
+ *
+ * @path ch07/7.4/S7.4_A2_T2.js
+ * @description Try use /*CHECK#1/. This is not closed multi line comment
+ * @negative
+ */
+
+/*CHECK#1/
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A3.js b/js/src/tests/test262/ch07/7.4/S7.4_A3.js
new file mode 100644
index 000000000..2efc9fab1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A3.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Multi line comments cannot nest
+ *
+ * @path ch07/7.4/S7.4_A3.js
+ * @description Try use nested comments
+ * @negative
+ */
+
+/*CHECK#1*/
+
+/*
+var
+
+/* x */
+= 1;
+*/
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A4_T1.js b/js/src/tests/test262/ch07/7.4/S7.4_A4_T1.js
new file mode 100644
index 000000000..87c6ace88
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A4_T1.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single and Multi line comments are used together
+ *
+ * @path ch07/7.4/S7.4_A4_T1.js
+ * @description Try use 2 close comment tags
+ * @negative
+ */
+
+/*CHECK#1*/
+
+/* var*/
+x*/
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A4_T2.js b/js/src/tests/test262/ch07/7.4/S7.4_A4_T2.js
new file mode 100644
index 000000000..b64b28e0e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A4_T2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single and Multi line comments are used together
+ *
+ * @path ch07/7.4/S7.4_A4_T2.js
+ * @description Fist Multi line comment, then Single line comment
+ */
+
+/*CHECK#1*/
+
+/* var
+*///x*/
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A4_T3.js b/js/src/tests/test262/ch07/7.4/S7.4_A4_T3.js
new file mode 100644
index 000000000..3e39f693a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A4_T3.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single and Multi line comments are used together
+ *
+ * @path ch07/7.4/S7.4_A4_T3.js
+ * @description Insert Single line comment into Multi line comment
+ */
+
+/*CHECK#1*/
+
+/* var
+//x
+*/
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A4_T4.js b/js/src/tests/test262/ch07/7.4/S7.4_A4_T4.js
new file mode 100644
index 000000000..1b5657663
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A4_T4.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single and Multi line comments are used together
+ *
+ * @path ch07/7.4/S7.4_A4_T4.js
+ * @description Try to open Multi line comment at the end of Single comment
+ * @negative
+ */
+
+/*CHECK#1*/
+
+// var /*
+x*/
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A4_T5.js b/js/src/tests/test262/ch07/7.4/S7.4_A4_T5.js
new file mode 100644
index 000000000..9a01060ee
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A4_T5.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single and Multi line comments are used together
+ *
+ * @path ch07/7.4/S7.4_A4_T5.js
+ * @description Insert Multi line comment into Single line comment
+ */
+
+/*CHECK#1*/
+
+// var /* x */
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A4_T6.js b/js/src/tests/test262/ch07/7.4/S7.4_A4_T6.js
new file mode 100644
index 000000000..08c983d7b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A4_T6.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single and Multi line comments are used together
+ *
+ * @path ch07/7.4/S7.4_A4_T6.js
+ * @description Insert Multi line comment with two closed tags into Single line comment
+ */
+
+/*CHECK#1*/
+
+// var /* x / = */ 1 */
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A4_T7.js b/js/src/tests/test262/ch07/7.4/S7.4_A4_T7.js
new file mode 100644
index 000000000..a58aa7d5d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A4_T7.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single and Multi line comments are used together
+ *
+ * @path ch07/7.4/S7.4_A4_T7.js
+ * @description Insert Multi line comment into Single line comments
+ */
+
+/*CHECK#1*/
+
+// var /*
+// x
+// =
+// 1*/
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A5.js b/js/src/tests/test262/ch07/7.4/S7.4_A5.js
new file mode 100644
index 000000000..bbdba29de
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A5.js
@@ -0,0 +1,49 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Single line comments can contain any Unicode character without Line Terminators
+ *
+ * @path ch07/7.4/S7.4_A5.js
+ * @description //var " + xx + "yy = -1", insert instead of xx all Unicode characters
+ */
+
+//CHECK
+var errorCount = 0;
+var count = 0;
+var hex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
+for (var i1 = 0; i1 < 16; i1++) {
+ for (var i2 = 0; i2 < 16; i2++) {
+ for (var i3 = 0; i3 < 16; i3++) {
+ for (var i4 = 0; i4 < 16; i4++) {
+ try {
+ var uu = hex[i1] + hex[i2] + hex[i3] + hex[i4];
+ var xx = String.fromCharCode("0x" + uu);
+ var LineTerminators = ((uu === "000A") || (uu === "000D") || (uu === "2028") || (uu === "2029"));
+ var yy = 0;
+ eval("//var " + xx + "yy = -1");
+ if (LineTerminators !== true) {
+ if (yy !== 0) {
+ $ERROR('#' + uu + ' ');
+ errorCount++;
+ }
+ } else {
+ if (yy !== -1) {
+ $ERROR('#' + uu + ' ');
+ errorCount++;
+ }
+ }
+ } catch (e){
+ $ERROR('#' + uu + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+ }
+ }
+}
+
+if (errorCount > 0) {
+ $ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
diff --git a/js/src/tests/test262/ch07/7.4/S7.4_A6.js b/js/src/tests/test262/ch07/7.4/S7.4_A6.js
new file mode 100644
index 000000000..c51790aeb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/S7.4_A6.js
@@ -0,0 +1,57 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If multi line comments csn not nest, they can contain any Unicode character
+ *
+ * @path ch07/7.4/S7.4_A6.js
+ * @description "var"+ yy+ "xx = 1", insert instead of yy all Unicode characters
+ */
+
+//CHECK
+var errorCount = 0;
+var count = 0;
+for (var indexI = 0; indexI <= 65535; indexI++) {
+ try {
+ var xx = 0;
+ eval("/*var " + String.fromCharCode(indexI) + "xx = 1*/");
+ var hex = decimalToHexString(indexI);
+ if (xx !== 0) {
+ $ERROR('#' + hex + ' ');
+ errorCount++;
+ }
+ } catch (e){
+ $ERROR('#' + hex + ' ');
+ errorCount++;
+ }
+ count++;
+}
+
+if (errorCount > 0) {
+ $ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
diff --git a/js/src/tests/test262/ch07/7.4/browser.js b/js/src/tests/test262/ch07/7.4/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/browser.js
diff --git a/js/src/tests/test262/ch07/7.4/shell.js b/js/src/tests/test262/ch07/7.4/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.4/shell.js
diff --git a/js/src/tests/test262/ch07/7.6/7.6-1.js b/js/src/tests/test262/ch07/7.6/7.6-1.js
new file mode 100644
index 000000000..b4bc37326
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-1.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-1.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: null (null)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u006eull = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-10.js b/js/src/tests/test262/ch07/7.6/7.6-10.js
new file mode 100644
index 000000000..36e6ea699
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-10.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-10.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: new (new)
+ */
+
+
+function testcase() {
+ try {
+ eval("var n\u0065w = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-11.js b/js/src/tests/test262/ch07/7.6/7.6-11.js
new file mode 100644
index 000000000..4e5fee3be
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-11.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-11.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: var (var)
+ */
+
+
+function testcase() {
+ try {
+ eval("var va\u0072 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-12.js b/js/src/tests/test262/ch07/7.6/7.6-12.js
new file mode 100644
index 000000000..3d939c8a9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-12.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-12.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: try (try)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0074\u0072\u0079 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-13.js b/js/src/tests/test262/ch07/7.6/7.6-13.js
new file mode 100644
index 000000000..bde18e099
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-13.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-13.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: catch (catch)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0063atch = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-14.js b/js/src/tests/test262/ch07/7.6/7.6-14.js
new file mode 100644
index 000000000..d9c6d794f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-14.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-14.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: finally (finally)
+ */
+
+
+function testcase() {
+ try {
+ eval("var fina\u006cly = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-15.js b/js/src/tests/test262/ch07/7.6/7.6-15.js
new file mode 100644
index 000000000..b2f034760
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-15.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-15.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: return (return)
+ */
+
+
+function testcase() {
+ try {
+ eval("var retur\u006e = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-16.js b/js/src/tests/test262/ch07/7.6/7.6-16.js
new file mode 100644
index 000000000..ba98c547b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-16.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-16.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: void (void)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0076\u006f\u0069\u0064 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-17.js b/js/src/tests/test262/ch07/7.6/7.6-17.js
new file mode 100644
index 000000000..93a309cbd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-17.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-17.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: continue (continue)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0063ontinue = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-18.js b/js/src/tests/test262/ch07/7.6/7.6-18.js
new file mode 100644
index 000000000..aba469e60
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-18.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-18.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: for (for)
+ */
+
+
+function testcase() {
+ try {
+ eval("var f\u006fr = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-19.js b/js/src/tests/test262/ch07/7.6/7.6-19.js
new file mode 100644
index 000000000..b6df7be44
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-19.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-19.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: switch (switch)
+ */
+
+
+function testcase() {
+ try {
+ eval("var switc\u0068 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-2.js b/js/src/tests/test262/ch07/7.6/7.6-2.js
new file mode 100644
index 000000000..c6ecd7172
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-2.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-2.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: true (true)
+ */
+
+
+function testcase() {
+ try {
+ eval("var tr\u0075e = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-20.js b/js/src/tests/test262/ch07/7.6/7.6-20.js
new file mode 100644
index 000000000..1eefcf064
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-20.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-20.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: while (while)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0077\u0068\u0069\u006c\u0065 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-21.js b/js/src/tests/test262/ch07/7.6/7.6-21.js
new file mode 100644
index 000000000..c1cc483ec
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-21.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-21.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: debugger (debugger)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0064ebugger = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-22.js b/js/src/tests/test262/ch07/7.6/7.6-22.js
new file mode 100644
index 000000000..a050ca989
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-22.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-22.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: function (function)
+ */
+
+
+function testcase() {
+ try {
+ eval("var func\u0074ion = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-23.js b/js/src/tests/test262/ch07/7.6/7.6-23.js
new file mode 100644
index 000000000..df98f3815
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-23.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-23.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: this (this)
+ */
+
+
+function testcase() {
+ try {
+ eval("var thi\u0073 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-24.js b/js/src/tests/test262/ch07/7.6/7.6-24.js
new file mode 100644
index 000000000..d5773ebf2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-24.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-24.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: if (if)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0069\u0066 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-25.js b/js/src/tests/test262/ch07/7.6/7.6-25.js
new file mode 100644
index 000000000..ff25f3e02
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-25.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-25.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: with (with)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0077ith = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-26.js b/js/src/tests/test262/ch07/7.6/7.6-26.js
new file mode 100644
index 000000000..c740431cb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-26.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-26.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: default (default)
+ */
+
+
+function testcase() {
+ try {
+ eval("var def\u0061ult = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-27.js b/js/src/tests/test262/ch07/7.6/7.6-27.js
new file mode 100644
index 000000000..e51bb26d8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-27.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-27.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: throw (throw)
+ */
+
+
+function testcase() {
+ try {
+ eval("var thro\u0077 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-28.js b/js/src/tests/test262/ch07/7.6/7.6-28.js
new file mode 100644
index 000000000..8f4dd26cf
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-28.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-28.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: in (in)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0069\u006e = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-29.js b/js/src/tests/test262/ch07/7.6/7.6-29.js
new file mode 100644
index 000000000..9e97c02ba
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-29.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-29.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: delete (delete)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0064elete = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-3.js b/js/src/tests/test262/ch07/7.6/7.6-3.js
new file mode 100644
index 000000000..d14357042
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-3.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-3.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: false (false)
+ */
+
+
+function testcase() {
+ try {
+ eval("var fals\u0065 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-30.js b/js/src/tests/test262/ch07/7.6/7.6-30.js
new file mode 100644
index 000000000..6e4af63b4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-30.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-30.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: class (class)
+ */
+
+
+function testcase() {
+ try {
+ eval("var cla\u0073s = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-31.js b/js/src/tests/test262/ch07/7.6/7.6-31.js
new file mode 100644
index 000000000..c9fb1089e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-31.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-31.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: extends (extends)
+ */
+
+
+function testcase() {
+ try {
+ eval("var extend\u0073 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-32.js b/js/src/tests/test262/ch07/7.6/7.6-32.js
new file mode 100644
index 000000000..86ea96417
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-32.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-32.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: enum (enum)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0065\u006e\u0075\u006d = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-33.js b/js/src/tests/test262/ch07/7.6/7.6-33.js
new file mode 100644
index 000000000..3d6c8dbe3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-33.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-33.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: super (super)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0073uper = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-34.js b/js/src/tests/test262/ch07/7.6/7.6-34.js
new file mode 100644
index 000000000..391fa0191
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-34.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-34.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: const (const)
+ */
+
+
+function testcase() {
+ try {
+ eval("var co\u006est = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-35.js b/js/src/tests/test262/ch07/7.6/7.6-35.js
new file mode 100644
index 000000000..5a729ad00
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-35.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-35.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: export (export)
+ */
+
+
+function testcase() {
+ try {
+ eval("var expor\u0074 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-36.js b/js/src/tests/test262/ch07/7.6/7.6-36.js
new file mode 100644
index 000000000..afc680a0e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-36.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-36.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: import (import)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0069\u006d\u0070\u006f\u0072\u0074 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-4.js b/js/src/tests/test262/ch07/7.6/7.6-4.js
new file mode 100644
index 000000000..b621b8d7e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-4.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-4.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: break (break)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0062\u0072\u0065\u0061\u006b = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-5.js b/js/src/tests/test262/ch07/7.6/7.6-5.js
new file mode 100644
index 000000000..5889b2fc6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-5.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-5.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: case (case)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0063ase = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-6.js b/js/src/tests/test262/ch07/7.6/7.6-6.js
new file mode 100644
index 000000000..d70805344
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-6.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-6.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: instanceof (instanceof)
+ */
+
+
+function testcase() {
+ try {
+ eval("var insta\u006eceof = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-7.js b/js/src/tests/test262/ch07/7.6/7.6-7.js
new file mode 100644
index 000000000..f388e1302
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-7.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-7.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: typeof (typeof)
+ */
+
+
+function testcase() {
+ try {
+ eval("var typeo\u0066 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-8.js b/js/src/tests/test262/ch07/7.6/7.6-8.js
new file mode 100644
index 000000000..ab4f25978
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-8.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-8.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: do (do)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0064\u006f = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6-9.js b/js/src/tests/test262/ch07/7.6/7.6-9.js
new file mode 100644
index 000000000..2e9f07b03
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6-9.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6-9.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: else (else) (null)
+ */
+
+
+function testcase() {
+ try {
+ eval("var \u0065lse = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-1.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-1.js
new file mode 100644
index 000000000..20be0698f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-1.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-1.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: null, true, false
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ null: 0,
+ true: 1,
+ false: 2
+ };
+ var arr = [
+ 'null',
+ 'true',
+ 'false'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-10.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-10.js
new file mode 100644
index 000000000..08f1d0026
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-10.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-10.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: in, try, class
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ in: 0,
+ try: 1,
+ class: 2
+ };
+ var arr = [
+ 'in',
+ 'try',
+ 'class'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-11.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-11.js
new file mode 100644
index 000000000..6875887d9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-11.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-11.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: enum, extends, super
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ enum: 0,
+ extends: 1,
+ super: 2
+ };
+ var arr = [
+ 'enum',
+ 'extends',
+ 'super'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-12.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-12.js
new file mode 100644
index 000000000..52940898d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-12.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-12.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: const, export, import
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ const: 0,
+ export: 1,
+ import: 2
+ };
+ var arr = [
+ 'const',
+ 'export',
+ 'import'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-13.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-13.js
new file mode 100644
index 000000000..d35543629
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-13.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-13.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: implements, let, private
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ implements: 0,
+ let: 1,
+ private: 2
+ };
+ var arr = [
+ 'implements',
+ 'let',
+ 'private'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-14.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-14.js
new file mode 100644
index 000000000..6d9270d3e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-14.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-14.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: public, yield, interface
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ public: 0,
+ yield: 1,
+ interface: 2
+ };
+ var arr = [
+ 'public',
+ 'yield',
+ 'interface'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-15.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-15.js
new file mode 100644
index 000000000..4585126a0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-15.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-15.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: package, protected, static
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ package: 0,
+ protected: 1,
+ static: 2
+ };
+ var arr = [
+ 'package',
+ 'protected',
+ 'static'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-16.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-16.js
new file mode 100644
index 000000000..20b61eccf
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-16.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-16.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: undeefined, NaN, Infinity
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ undefined: 0,
+ NaN: 1,
+ Infinity: 2
+ };
+ var arr = [
+ 'undefined',
+ 'NaN',
+ 'Infinity'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-2.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-2.js
new file mode 100644
index 000000000..8b0ca79ea
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-2.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-2.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: break, case, do
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ break: 0,
+ case: 1,
+ do: 2
+ };
+ var arr = [
+ 'break',
+ 'case',
+ 'do'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-3.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-3.js
new file mode 100644
index 000000000..5254fdfa3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-3.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-3.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: instanceof, typeof, else
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ instanceof: 0,
+ typeof: 1,
+ else: 2
+ };
+ var arr = [
+ 'instanceof',
+ 'typeof',
+ 'else'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-4.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-4.js
new file mode 100644
index 000000000..5391b5be8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-4.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-4.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: new, var, catch
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ new: 0,
+ var: 1,
+ catch: 2
+ };
+ var arr = [
+ 'new',
+ 'var',
+ 'catch'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-5.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-5.js
new file mode 100644
index 000000000..cc65a2bd2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-5.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-5.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: finally, return, void
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ finally: 0,
+ return: 1,
+ void: 2
+ };
+ var arr = [
+ 'finally',
+ 'return',
+ 'void'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-6.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-6.js
new file mode 100644
index 000000000..157b2fec9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-6.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-6.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: continue, for, switch
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ continue: 0,
+ for: 1,
+ switch: 2
+ };
+ var arr = [
+ 'continue',
+ 'for',
+ 'switch'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-7.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-7.js
new file mode 100644
index 000000000..227e58d5a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-7.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-7.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: while, debugger, function
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ while: 0,
+ debugger: 1,
+ function: 2
+ };
+ var arr = [
+ 'while' ,
+ 'debugger',
+ 'function'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-8.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-8.js
new file mode 100644
index 000000000..0045ead1d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-8.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-8.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: this, with, default
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ this: 0,
+ with: 1,
+ default: 2
+ };
+ var arr = [
+ 'this',
+ 'with',
+ 'default'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-9.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-9.js
new file mode 100644
index 000000000..285d14ec9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-1-9.js
@@ -0,0 +1,34 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-1-9.js
+ * @description Allow reserved words as property names at object initialization, verified with hasOwnProperty: if, throw, delete
+ */
+
+
+function testcase(){
+ var tokenCodes = {
+ if: 0,
+ throw: 1,
+ delete: 2
+ };
+ var arr = [
+ 'if',
+ 'throw',
+ 'delete'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-1.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-1.js
new file mode 100644
index 000000000..d652a22a4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-1.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-1.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: null, true, false
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.null = 0;
+ tokenCodes.true = 1;
+ tokenCodes.false = 2;
+ var arr = [
+ 'null',
+ 'true',
+ 'false'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-10.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-10.js
new file mode 100644
index 000000000..2d8ed66f1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-10.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-10.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: in, try, class
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.in = 0;
+ tokenCodes.try = 1;
+ tokenCodes.class = 2;
+ var arr = [
+ 'in',
+ 'try',
+ 'class'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-11.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-11.js
new file mode 100644
index 000000000..2185f2de0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-11.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-11.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: enum, extends, super
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.enum = 0;
+ tokenCodes.extends = 1;
+ tokenCodes.super = 2;
+ var arr = [
+ 'enum',
+ 'extends',
+ 'super'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-12.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-12.js
new file mode 100644
index 000000000..622ec9067
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-12.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-12.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: const, export, import
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.const = 0;
+ tokenCodes.export = 1;
+ tokenCodes.import = 2;
+ var arr = [
+ 'const',
+ 'export',
+ 'import'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-13.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-13.js
new file mode 100644
index 000000000..169cbc798
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-13.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-13.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: implements, let, private
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.implements = 0;
+ tokenCodes.let = 1;
+ tokenCodes.private = 2;
+ var arr = [
+ 'implements',
+ 'let',
+ 'private'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-14.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-14.js
new file mode 100644
index 000000000..3343b2670
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-14.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-14.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: public, yield, interface
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.public = 0;
+ tokenCodes.yield = 1;
+ tokenCodes.interface = 2;
+ var arr = [
+ 'public',
+ 'yield',
+ 'interface'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-15.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-15.js
new file mode 100644
index 000000000..ce04d2900
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-15.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-15.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: package, protected, static
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.package = 0;
+ tokenCodes.protected = 1;
+ tokenCodes.static = 2;
+ var arr = [
+ 'package',
+ 'protected',
+ 'static'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-16.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-16.js
new file mode 100644
index 000000000..e078859fc
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-16.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-16.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: undefined, NaN, Infinity
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.undefined = 0;
+ tokenCodes.NaN = 1;
+ tokenCodes.Infinity = 2;
+ var arr = [
+ 'undefined',
+ 'NaN',
+ 'Infinity'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-2.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-2.js
new file mode 100644
index 000000000..3a8997852
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-2.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-2.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: break, case, do
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.break = 0;
+ tokenCodes.case = 1;
+ tokenCodes.do = 2;
+ var arr = [
+ 'break',
+ 'case',
+ 'do'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-3.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-3.js
new file mode 100644
index 000000000..30e4bc139
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-3.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-3.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: instanceof, typeof, else
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.instanceof = 0;
+ tokenCodes.typeof = 1;
+ tokenCodes.else = 2;
+ var arr = [
+ 'instanceof',
+ 'typeof',
+ 'else'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-4.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-4.js
new file mode 100644
index 000000000..0d43d0373
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-4.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-4.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: new, var, catch
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.new = 0;
+ tokenCodes.var = 1;
+ tokenCodes.catch = 2;
+ var arr = [
+ 'new',
+ 'var',
+ 'catch'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-5.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-5.js
new file mode 100644
index 000000000..542175c02
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-5.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-5.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: finally, return, void
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.finally = 0;
+ tokenCodes.return = 1;
+ tokenCodes.void = 2;
+ var arr = [
+ 'finally',
+ 'return',
+ 'void'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-6.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-6.js
new file mode 100644
index 000000000..20a949a70
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-6.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-6.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: continue, for, switch
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.continue = 0;
+ tokenCodes.for = 1;
+ tokenCodes.switch = 2;
+ var arr = [
+ 'continue',
+ 'for',
+ 'switch'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-7.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-7.js
new file mode 100644
index 000000000..83f526468
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-7.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-7.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: while, debugger, function
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.while = 0;
+ tokenCodes.debugger = 1;
+ tokenCodes.function = 2;
+ var arr = [
+ 'while' ,
+ 'debugger',
+ 'function'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-8.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-8.js
new file mode 100644
index 000000000..62e39d18a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-8.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-8.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: this, with, default
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.this = 0;
+ tokenCodes.with = 1;
+ tokenCodes.default = 2;
+ var arr = [
+ 'this',
+ 'with',
+ 'default'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-9.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-9.js
new file mode 100644
index 000000000..99678952f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-2-9.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-2-9.js
+ * @description Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: if, throw, delete
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.if = 0;
+ tokenCodes.throw = 1;
+ tokenCodes.delete = 2;
+ var arr = [
+ 'if',
+ 'throw',
+ 'delete'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-1.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-1.js
new file mode 100644
index 000000000..7f890eb5d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-1.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-1.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: null, true, false
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['null'] = 0;
+ tokenCodes['true'] = 1;
+ tokenCodes['false'] = 2;
+ var arr = [
+ 'null',
+ 'true',
+ 'false'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-10.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-10.js
new file mode 100644
index 000000000..83dddc14e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-10.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-10.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: in, try, class
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['in'] = 0;
+ tokenCodes['try'] = 1;
+ tokenCodes['class'] = 2;
+ var arr = [
+ 'in',
+ 'try',
+ 'class'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-11.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-11.js
new file mode 100644
index 000000000..4b1f58b41
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-11.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-11.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: enum, extends, super
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['enum'] = 0;
+ tokenCodes['extends'] = 1;
+ tokenCodes['super'] = 2;
+ var arr = [
+ 'enum',
+ 'extends',
+ 'super'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-12.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-12.js
new file mode 100644
index 000000000..72cc76dbe
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-12.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-12.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: const, export, import
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['const'] = 0;
+ tokenCodes['export'] = 1;
+ tokenCodes['import'] = 2;
+ var arr = [
+ 'const',
+ 'export',
+ 'import'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-13.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-13.js
new file mode 100644
index 000000000..6bd557357
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-13.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-13.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: implements, let, private
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['implements'] = 0;
+ tokenCodes['let'] = 1;
+ tokenCodes['private'] = 2;
+ var arr = [
+ 'implements',
+ 'let',
+ 'private'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-14.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-14.js
new file mode 100644
index 000000000..b70990d6c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-14.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-14.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: public, yield, interface
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['public'] = 0;
+ tokenCodes['yield'] = 1;
+ tokenCodes['interface'] = 2;
+ var arr = [
+ 'public',
+ 'yield',
+ 'interface'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-15.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-15.js
new file mode 100644
index 000000000..f5b7664b8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-15.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-15.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: package, protected, static
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['package'] = 0;
+ tokenCodes['protected'] = 1;
+ tokenCodes['static'] = 2;
+ var arr = [
+ 'package',
+ 'protected',
+ 'static'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-16.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-16.js
new file mode 100644
index 000000000..afd96393c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-16.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-16.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: undefined, NaN, Infinity
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['undefined'] = 0;
+ tokenCodes['NaN'] = 1;
+ tokenCodes['Infinity'] = 2;
+ var arr = [
+ 'undefined',
+ 'NaN',
+ 'Infinity'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-2.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-2.js
new file mode 100644
index 000000000..351e26392
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-2.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-2.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: break, case, do
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['break'] = 0;
+ tokenCodes['case'] = 1;
+ tokenCodes['do'] = 2;
+ var arr = [
+ 'break',
+ 'case',
+ 'do'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-3.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-3.js
new file mode 100644
index 000000000..c756355fe
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-3.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-3.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: instanceof, typeof, else
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['instanceof'] = 0;
+ tokenCodes['typeof'] = 1;
+ tokenCodes['else'] = 2;
+ var arr = [
+ 'instanceof',
+ 'typeof',
+ 'else'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-4.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-4.js
new file mode 100644
index 000000000..15de6619b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-4.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-4.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: new, var, catch
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['new'] = 0;
+ tokenCodes['var'] = 1;
+ tokenCodes['catch'] = 2;
+ var arr = [
+ 'new',
+ 'var',
+ 'catch'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-5.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-5.js
new file mode 100644
index 000000000..cae2bb6e6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-5.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-5.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: finally, return, void
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['finally'] = 0;
+ tokenCodes['return'] = 1;
+ tokenCodes['void'] = 2;
+ var arr = [
+ 'finally',
+ 'return',
+ 'void'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-6.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-6.js
new file mode 100644
index 000000000..452072295
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-6.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-6.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: continue, for, switch
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['continue'] = 0;
+ tokenCodes['for'] = 1;
+ tokenCodes['switch'] = 2;
+ var arr = [
+ 'continue',
+ 'for',
+ 'switch'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-7.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-7.js
new file mode 100644
index 000000000..15092a0cf
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-7.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-7.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: while, debugger, function
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['while'] = 0;
+ tokenCodes['debugger'] = 1;
+ tokenCodes['function'] = 2;
+ var arr = [
+ 'while',
+ 'debugger',
+ 'function'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-8.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-8.js
new file mode 100644
index 000000000..19db5267f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-8.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-8.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: this, with, default
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['this'] = 0;
+ tokenCodes['with'] = 1;
+ tokenCodes['default'] = 2;
+ var arr = [
+ 'this',
+ 'with',
+ 'default'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-9.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-9.js
new file mode 100644
index 000000000..856cdb104
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-3-9.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-3-9.js
+ * @description Allow reserved words as property names by index assignment,verified with hasOwnProperty: if, throw, delete
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['if'] = 0;
+ tokenCodes['throw'] = 1;
+ tokenCodes['delete'] = 2;
+ var arr = [
+ 'if',
+ 'throw',
+ 'delete'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-1.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-1.js
new file mode 100644
index 000000000..8f81d173c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-1.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-1.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: null, true, false
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set null(value) {
+ test0 = value;
+ },
+ get null() {
+ return test0;
+ },
+ set true(value) {
+ test1 = value;
+ },
+ get true() {
+ return test1;
+ },
+ set false(value) {
+ test2 = value;
+ },
+ get false(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'null',
+ 'true',
+ 'false'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-10.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-10.js
new file mode 100644
index 000000000..ae2445a25
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-10.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-10.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: in, try, class
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set in(value){
+ test0 = value;
+ },
+ get in(){
+ return test0;
+ },
+ set try(value){
+ test1 = value;
+ },
+ get try(){
+ return test1
+ },
+ set class(value){
+ test2 = value;
+ },
+ get class(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'in',
+ 'try',
+ 'class'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-11.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-11.js
new file mode 100644
index 000000000..081d81170
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-11.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-11.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: enum, extends, super
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set enum(value){
+ test0 = value;
+ },
+ get enum(){
+ return test0;
+ },
+ set extends(value){
+ test1 = value;
+ },
+ get extends(){
+ return test1;
+ },
+ set super(value){
+ test2 = value;
+ },
+ get super(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'enum',
+ 'extends',
+ 'super'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-12.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-12.js
new file mode 100644
index 000000000..3c16683f7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-12.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-12.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: const, export, import
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set const(value){
+ test0 = value;
+ },
+ get const(){
+ return test0;
+ },
+ set export(value){
+ test1 = value;
+ },
+ get export(){
+ return test1
+ },
+ set import(value){
+ test2 = value;
+ },
+ get import(){
+ return test2
+ }
+ };
+ var arr = [
+ 'const',
+ 'export',
+ 'import'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-13.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-13.js
new file mode 100644
index 000000000..47dd6e266
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-13.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-13.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: implements, let, private
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set implements(value){
+ test0 = value;
+ },
+ get implements(){
+ return test0;
+ },
+ set let(value){
+ test1 = value;
+ },
+ get let(){
+ return test1
+ },
+ set private(value){
+ test2 = value;
+ },
+ get private(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'implements',
+ 'let',
+ 'private'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-14.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-14.js
new file mode 100644
index 000000000..0d1e1aa4f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-14.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-14.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: public, yield, interface
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set public(value){
+ test0 = value;
+ },
+ get public(){
+ return test0;
+ },
+ set yield(value){
+ test1 = value;
+ },
+ get yield(){
+ return test1;
+ },
+ set interface(value){
+ test2 = value;
+ },
+ get interface(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'public',
+ 'yield',
+ 'interface'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-15.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-15.js
new file mode 100644
index 000000000..111f00706
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-15.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-15.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: package, protected, static
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set package(value){
+ test0 = value;
+ },
+ get package(){
+ return test0;
+ },
+ set protected(value){
+ test1 = value;
+ },
+ get protected(){
+ return test1
+ },
+ set static(value){
+ test2 = value;
+ },
+ get static(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'package',
+ 'protected',
+ 'static'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-16.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-16.js
new file mode 100644
index 000000000..0edafa8e3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-16.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-16.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: undefined, NaN, Infinity
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set undefined(value){
+ test0 = value;
+ },
+ get undefined(){
+ return test0;
+ },
+ set NaN(value){
+ test1 = value;
+ },
+ get NaN(){
+ return test1;
+ },
+ set Infinity(value){
+ test2 = value;
+ },
+ get Infinity(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'undefined',
+ 'NaN',
+ 'Infinity'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-2.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-2.js
new file mode 100644
index 000000000..8569c9cea
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-2.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: break, case, do
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set break(value){
+ test0 = value;
+ },
+ get break(){
+ return test0;
+ },
+ set case(value){
+ test1 = value;
+ },
+ get case(){
+ return test1;
+ },
+ set do(value){
+ test2 = value;
+ },
+ get do(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'break',
+ 'case',
+ 'do'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-3.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-3.js
new file mode 100644
index 000000000..3ef8ea7aa
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-3.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-3.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: instanceof, typeof, else
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set instanceof(value){
+ test0 = value;
+ },
+ get instanceof(){
+ return test0;
+ },
+ set typeof(value){
+ test1 = value;
+ },
+ get typeof(){
+ return test1;
+ },
+ set else(value){
+ test2 = value;
+ },
+ get else(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'instanceof',
+ 'typeof',
+ 'else'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-4.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-4.js
new file mode 100644
index 000000000..afb165ed1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-4.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: new, var, catch
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set new(value){
+ test0 = value;
+ },
+ get new(){
+ return test0;
+ },
+ set var(value){
+ test1 = value;
+ },
+ get var(){
+ return test1;
+ },
+ set catch(value){
+ test2 = value;
+ },
+ get catch(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'new',
+ 'var',
+ 'catch'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-5.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-5.js
new file mode 100644
index 000000000..e4c6badae
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-5.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-5.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: finally, return, void
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set finally(value){
+ test0 = value;
+ },
+ get finally(){
+ return test0;
+ },
+ set return(value){
+ test1 = value;
+ },
+ get return(){
+ return test1;
+ },
+ set void(value){
+ test2 = value;
+ },
+ get void(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'finally',
+ 'return',
+ 'void'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-6.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-6.js
new file mode 100644
index 000000000..f240ded36
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-6.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-6.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: continue, for, switch
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set continue(value){
+ test0 = value;
+ },
+ get continue(){
+ return test0;
+ },
+ set for(value){
+ test1 = value;
+ },
+ get for(){
+ return test1;
+ },
+ set switch(value){
+ test2 = value;
+ },
+ get switch(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'continue',
+ 'for',
+ 'switch'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-7.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-7.js
new file mode 100644
index 000000000..6134976c8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-7.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-7.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: while, debugger, function
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set while(value){
+ test0 = value;
+ },
+ get while(){
+ return test0
+ },
+ set debugger(value){
+ test1 = value;
+ },
+ get debugger(){
+ return test1;
+ },
+ set function(value){
+ test2 = value;
+ },
+ get function(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'while' ,
+ 'debugger',
+ 'function'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-8.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-8.js
new file mode 100644
index 000000000..a027cf608
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-8.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-8.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: this, with, default
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set this(value){
+ test0 = value;
+ },
+ get this(){
+ return test0;
+ },
+ set with(value){
+ test1 = value;
+ },
+ get with(){
+ return test1;
+ },
+ set default(value){
+ test2 = value;
+ },
+ get default(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'this',
+ 'with',
+ 'default'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-9.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-9.js
new file mode 100644
index 000000000..1828b0d9a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-4-9.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-4-9.js
+ * @description Allow reserved words as property names by set function within an object, verified with hasOwnProperty: if, throw, delete
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set if(value){
+ test0 = value;
+ },
+ get if(){
+ return test0;
+ },
+ set throw(value){
+ test1 = value;
+ },
+ get throw(){
+ return test1
+ },
+ set delete(value){
+ test2 = value;
+ },
+ get delete(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'if',
+ 'throw',
+ 'delete'
+ ];
+ for(var p in tokenCodes) {
+ for(var p1 in arr) {
+ if(arr[p1] === p) {
+ if(!tokenCodes.hasOwnProperty(arr[p1])) {
+ return false;
+ };
+ }
+ }
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-1.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-1.js
new file mode 100644
index 000000000..88eb2869f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-1.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-1.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: null, true, false
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ null: 0,
+ true: 1,
+ false: 2
+ };
+ var arr = [
+ 'null',
+ 'true',
+ 'false'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-10.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-10.js
new file mode 100644
index 000000000..a00ce7096
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-10.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-10.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: in, try, class
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ in: 0,
+ try: 1,
+ class: 2
+ };
+ var arr = [
+ 'in',
+ 'try',
+ 'class'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-11.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-11.js
new file mode 100644
index 000000000..7a3a3af0c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-11.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-11.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: enum, extends, super
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ enum: 0,
+ extends: 1,
+ super: 2
+ };
+ var arr = [
+ 'enum',
+ 'extends',
+ 'super'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-12.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-12.js
new file mode 100644
index 000000000..b2b7645f5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-12.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-12.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: const, export, import
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ const : 0,
+ export: 1,
+ import: 2
+ };
+ var arr = [
+ 'const',
+ 'export',
+ 'import'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-13.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-13.js
new file mode 100644
index 000000000..a7b03b95c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-13.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-13.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: implements, let, private
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ implements: 0,
+ let: 1,
+ private: 2
+ };
+ var arr = [
+ 'implements',
+ 'let',
+ 'private'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-14.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-14.js
new file mode 100644
index 000000000..f24467c8f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-14.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-14.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: public, yield, interface
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ public: 0,
+ yield: 1,
+ interface: 2
+ };
+ var arr = [
+ 'public',
+ 'yield',
+ 'interface'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-15.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-15.js
new file mode 100644
index 000000000..498e5e7d5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-15.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-15.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: package, protected, static
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ package: 0,
+ protected: 1,
+ static: 2
+ };
+ var arr = [
+ 'package',
+ 'protected',
+ 'static'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-16.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-16.js
new file mode 100644
index 000000000..8bf471549
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-16.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-16.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: undefined, NaN, Infinity
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ undefined: 0,
+ NaN: 1,
+ Infinity: 2
+ };
+ var arr = [
+ 'undefined',
+ 'NaN',
+ 'Infinity'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-2.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-2.js
new file mode 100644
index 000000000..79ccb65b9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-2.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-2.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: break, case, do
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ break: 0,
+ case: 1,
+ do: 2
+ };
+ var arr = [
+ 'break',
+ 'case',
+ 'do'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-3.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-3.js
new file mode 100644
index 000000000..643fce68f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-3.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-3.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: instanceof, typeof, else
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ instanceof: 0,
+ typeof: 1,
+ else: 2
+ };
+ var arr = [
+ 'instanceof',
+ 'typeof',
+ 'else'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-4.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-4.js
new file mode 100644
index 000000000..8080248a2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-4.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-4.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: new, var, catch
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ new: 0,
+ var: 1,
+ catch: 2
+ };
+ var arr = [
+ 'new',
+ 'var',
+ 'catch'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-5.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-5.js
new file mode 100644
index 000000000..bb3280732
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-5.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-5.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: finally, return, void
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ finally: 0,
+ return: 1,
+ void: 2
+ };
+ var arr = [
+ 'finally',
+ 'return',
+ 'void'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-6.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-6.js
new file mode 100644
index 000000000..c9dc5a146
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-6.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-6.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: continue, for, switch
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ continue: 0,
+ for: 1,
+ switch: 2
+ };
+ var arr = [
+ 'continue',
+ 'for',
+ 'switch'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-7.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-7.js
new file mode 100644
index 000000000..a0a5a977b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-7.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-7.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: while, debugger, function
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ while: 0,
+ debugger: 1,
+ function: 2
+ };
+ var arr = [
+ 'while' ,
+ 'debugger',
+ 'function'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-8.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-8.js
new file mode 100644
index 000000000..d659f6acd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-8.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-8.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: this, with, default
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ this: 0,
+ with: 1,
+ default: 2
+ };
+ var arr = [
+ 'this',
+ 'with',
+ 'default'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-9.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-9.js
new file mode 100644
index 000000000..6e21dfd78
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-5-9.js
@@ -0,0 +1,30 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-5-9.js
+ * @description Allow reserved words as property names at object initialization, accessed via indexing: if, throw, delete
+ */
+
+
+function testcase() {
+ var tokenCodes = {
+ if: 0,
+ throw: 1,
+ delete: 2
+ };
+ var arr = [
+ 'if',
+ 'throw',
+ 'delete'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-1.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-1.js
new file mode 100644
index 000000000..b2c98910a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-1.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-1.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: null, true, false
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.null = 0;
+ tokenCodes.true = 1;
+ tokenCodes.false = 2;
+ var arr = [
+ 'null',
+ 'true',
+ 'false'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-10.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-10.js
new file mode 100644
index 000000000..3099c4abc
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-10.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-10.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: in, try, class
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.in = 0;
+ tokenCodes.try = 1;
+ tokenCodes.class = 2;
+ var arr = [
+ 'in',
+ 'try',
+ 'class'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-11.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-11.js
new file mode 100644
index 000000000..9fda29ca4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-11.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-11.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: enum, extends, super
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.enum = 0;
+ tokenCodes.extends = 1;
+ tokenCodes.super = 2;
+ var arr = [
+ 'enum',
+ 'extends',
+ 'super'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-12.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-12.js
new file mode 100644
index 000000000..7cfb6643a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-12.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-12.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: const, export, import
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.const = 0;
+ tokenCodes.export = 1;
+ tokenCodes.import = 2;
+ var arr = [
+ 'const',
+ 'export',
+ 'import'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-13.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-13.js
new file mode 100644
index 000000000..ff4bf38cf
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-13.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-13.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: implements, let, private
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.implements = 0;
+ tokenCodes.let = 1;
+ tokenCodes.private = 2;
+ var arr = [
+ 'implements',
+ 'let',
+ 'private'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-14.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-14.js
new file mode 100644
index 000000000..4bea56fe5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-14.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-14.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: public, yield, interface
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.public = 0;
+ tokenCodes.yield = 1;
+ tokenCodes.interface = 2;
+ var arr = [
+ 'public',
+ 'yield',
+ 'interface'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-15.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-15.js
new file mode 100644
index 000000000..0021da41b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-15.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-15.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: package, protected, static
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.package = 0;
+ tokenCodes.protected = 1;
+ tokenCodes.static = 2;
+ var arr = [
+ 'package',
+ 'protected',
+ 'static'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-16.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-16.js
new file mode 100644
index 000000000..bc98a8a5f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-16.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-16.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: undefined, NaN, Infinity
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.undefined = 0;
+ tokenCodes.NaN = 1;
+ tokenCodes.Infinity = 2;
+ var arr = [
+ 'undefined',
+ 'NaN',
+ 'Infinity'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-2.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-2.js
new file mode 100644
index 000000000..65c06c957
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-2.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-2.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: break, case, do
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.break = 0;
+ tokenCodes.case = 1;
+ tokenCodes.do = 2;
+ var arr = [
+ 'break',
+ 'case',
+ 'do'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-3.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-3.js
new file mode 100644
index 000000000..b403a3efe
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-3.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-3.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: instanceof, typeof, else
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.instanceof = 0;
+ tokenCodes.typeof = 1;
+ tokenCodes.else = 2;
+ var arr = [
+ 'instanceof',
+ 'typeof',
+ 'else'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-4.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-4.js
new file mode 100644
index 000000000..cbe85b25e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-4.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-4.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: new, var, catch
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.new = 0;
+ tokenCodes.var = 1;
+ tokenCodes.catch = 2;
+ var arr = [
+ 'new',
+ 'var',
+ 'catch'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-5.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-5.js
new file mode 100644
index 000000000..5d2e1b6f6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-5.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-5.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: finally, return, void
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.finally = 0;
+ tokenCodes.return = 1;
+ tokenCodes.void = 2;
+ var arr = [
+ 'finally',
+ 'return',
+ 'void'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-6.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-6.js
new file mode 100644
index 000000000..df407917b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-6.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-6.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: continue, for, switch
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.continue = 0;
+ tokenCodes.for = 1;
+ tokenCodes.switch = 2;
+ var arr = [
+ 'continue',
+ 'for',
+ 'switch'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-7.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-7.js
new file mode 100644
index 000000000..1c4ca549c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-7.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-7.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: while, debugger, function
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.while = 0;
+ tokenCodes.debugger = 1;
+ tokenCodes.function = 2;
+ var arr = [
+ 'while' ,
+ 'debugger',
+ 'function'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-8.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-8.js
new file mode 100644
index 000000000..945eecf73
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-8.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-8.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: this, with, default
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.this = 0;
+ tokenCodes.with = 1;
+ tokenCodes.default = 2;
+ var arr = [
+ 'this',
+ 'with',
+ 'default'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-9.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-9.js
new file mode 100644
index 000000000..ae8bbbcd2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-6-9.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-6-9.js
+ * @description Allow reserved words as property names by dot operator assignment, accessed via indexing: if, throw, delete
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes.if = 0;
+ tokenCodes.throw = 1;
+ tokenCodes.delete = 2;
+ var arr = [
+ 'if',
+ 'throw',
+ 'delete'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-1.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-1.js
new file mode 100644
index 000000000..060d98cb9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-1.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-1.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: null, true, false
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['null'] = 0;
+ tokenCodes['true'] = 1;
+ tokenCodes['false'] = 2;
+ var arr = [
+ 'null',
+ 'true',
+ 'false'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-10.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-10.js
new file mode 100644
index 000000000..22a2e32fb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-10.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-10.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: in, try, class
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['in'] = 0;
+ tokenCodes['try'] = 1;
+ tokenCodes['class'] = 2;
+ var arr = [
+ 'in',
+ 'try',
+ 'class'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-11.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-11.js
new file mode 100644
index 000000000..0c0176399
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-11.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-11.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: enum, extends, super
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['enum'] = 0;
+ tokenCodes['extends'] = 1;
+ tokenCodes['super'] = 2;
+ var arr = [
+ 'enum',
+ 'extends',
+ 'super'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-12.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-12.js
new file mode 100644
index 000000000..56eb9d318
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-12.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-12.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: const, export, import
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['const'] = 0;
+ tokenCodes['export'] = 1;
+ tokenCodes['import'] = 2;
+ var arr = [
+ 'const',
+ 'export',
+ 'import'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-13.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-13.js
new file mode 100644
index 000000000..fd8beb9a2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-13.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-13.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: implements, let, private
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['implements'] = 0;
+ tokenCodes['let'] = 1;
+ tokenCodes['private'] = 2;
+ var arr = [
+ 'implements',
+ 'let',
+ 'private'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-14.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-14.js
new file mode 100644
index 000000000..295abc5d1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-14.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-14.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: public, yield, interface
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['public'] = 0;
+ tokenCodes['yield'] = 1;
+ tokenCodes['interface'] = 2;
+ var arr = [
+ 'public',
+ 'yield',
+ 'interface'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-15.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-15.js
new file mode 100644
index 000000000..5c95f6db6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-15.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-15.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: package, protected, static
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['package'] = 0;
+ tokenCodes['protected'] = 1;
+ tokenCodes['static'] = 2;
+ var arr = [
+ 'package',
+ 'protected',
+ 'static'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-16.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-16.js
new file mode 100644
index 000000000..f8146c5ab
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-16.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-16.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: undefined, NaN, Infinity
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['undefined'] = 0;
+ tokenCodes['NaN'] = 1;
+ tokenCodes['Infinity'] = 2;
+ var arr = [
+ 'undefined',
+ 'NaN',
+ 'Infinity'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-2.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-2.js
new file mode 100644
index 000000000..62df8ea1d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-2.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-2.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: break, case, do
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['break'] = 0;
+ tokenCodes['case'] = 1;
+ tokenCodes['do'] = 2;
+ var arr = [
+ 'break',
+ 'case',
+ 'do'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-3.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-3.js
new file mode 100644
index 000000000..772c108b4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-3.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-3.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: instanceof, typeof, else
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['instanceof'] = 0;
+ tokenCodes['typeof'] = 1;
+ tokenCodes['else'] = 2;
+ var arr = [
+ 'instanceof',
+ 'typeof',
+ 'else'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-4.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-4.js
new file mode 100644
index 000000000..99d7868b9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-4.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-4.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: new, var, catch
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['new'] = 0;
+ tokenCodes['var'] = 1;
+ tokenCodes['catch'] = 2;
+ var arr = [
+ 'new',
+ 'var',
+ 'catch'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-5.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-5.js
new file mode 100644
index 000000000..3543e4f25
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-5.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-5.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: finally, return, void
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['finally'] = 0;
+ tokenCodes['return'] = 1;
+ tokenCodes['void'] = 2;
+ var arr = [
+ 'finally',
+ 'return',
+ 'void'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-6.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-6.js
new file mode 100644
index 000000000..652fc97d7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-6.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-6.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: continue, for, switch
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['continue'] = 0;
+ tokenCodes['for'] = 1;
+ tokenCodes['switch'] = 2;
+ var arr = [
+ 'continue',
+ 'for',
+ 'switch'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-7.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-7.js
new file mode 100644
index 000000000..1605d5d0b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-7.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-7.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: while, debugger, function
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['while'] = 0;
+ tokenCodes['debugger'] = 1;
+ tokenCodes['function'] = 2;
+ var arr = [
+ 'while',
+ 'debugger',
+ 'function'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-8.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-8.js
new file mode 100644
index 000000000..eab4c423a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-8.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-8.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: this, with, default
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['this'] = 0;
+ tokenCodes['with'] = 1;
+ tokenCodes['default'] = 2;
+ var arr = [
+ 'this',
+ 'with',
+ 'default'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-9.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-9.js
new file mode 100644
index 000000000..9f018dfa6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-7-9.js
@@ -0,0 +1,29 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-7-9.js
+ * @description Allow reserved words as property names by index assignment, accessed via indexing: if, throw, delete
+ */
+
+
+function testcase() {
+ var tokenCodes = {};
+ tokenCodes['if'] = 0;
+ tokenCodes['throw'] = 1;
+ tokenCodes['delete'] = 2;
+ var arr = [
+ 'if',
+ 'throw',
+ 'delete'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-1.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-1.js
new file mode 100644
index 000000000..7d816111d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-1.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-1.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: null, true, false
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set null(value) {
+ test0 = value;
+ },
+ get null() {
+ return test0;
+ },
+ set true(value) {
+ test1 = value;
+ },
+ get true() {
+ return test1;
+ },
+ set false(value) {
+ test2 = value;
+ },
+ get false(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'null',
+ 'true',
+ 'false'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-10.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-10.js
new file mode 100644
index 000000000..3b48de443
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-10.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-10.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: in, try, class
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set in(value){
+ test0 = value;
+ },
+ get in(){
+ return test0;
+ },
+ set try(value){
+ test1 = value;
+ },
+ get try(){
+ return test1
+ },
+ set class(value){
+ test2 = value;
+ },
+ get class(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'in',
+ 'try',
+ 'class'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-11.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-11.js
new file mode 100644
index 000000000..ff92952e1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-11.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-11.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: enum, extends, super
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set enum(value){
+ test0 = value;
+ },
+ get enum(){
+ return test0;
+ },
+ set extends(value){
+ test1 = value;
+ },
+ get extends(){
+ return test1;
+ },
+ set super(value){
+ test2 = value;
+ },
+ get super(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'enum',
+ 'extends',
+ 'super'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-12.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-12.js
new file mode 100644
index 000000000..2a4a1d170
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-12.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-12.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: const, export, import
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set const(value){
+ test0 = value;
+ },
+ get const(){
+ return test0;
+ },
+ set export(value){
+ test1 = value;
+ },
+ get export(){
+ return test1
+ },
+ set import(value){
+ test2 = value;
+ },
+ get import(){
+ return test2
+ }
+ };
+ var arr = [
+ 'const',
+ 'export',
+ 'import'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-13.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-13.js
new file mode 100644
index 000000000..a2f46d570
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-13.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-13.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: implements, let, private
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set implements(value){
+ test0 = value;
+ },
+ get implements(){
+ return test0;
+ },
+ set let(value){
+ test1 = value;
+ },
+ get let(){
+ return test1
+ },
+ set private(value){
+ test2 = value;
+ },
+ get private(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'implements',
+ 'let',
+ 'private'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-14.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-14.js
new file mode 100644
index 000000000..393ae46b0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-14.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-14.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: public, yield, interface
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set public(value){
+ test0 = value;
+ },
+ get public(){
+ return test0;
+ },
+ set yield(value){
+ test1 = value;
+ },
+ get yield(){
+ return test1;
+ },
+ set interface(value){
+ test2 = value;
+ },
+ get interface(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'public',
+ 'yield',
+ 'interface'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-15.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-15.js
new file mode 100644
index 000000000..81d5f4b7f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-15.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-15.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: package, protected, static
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set package(value){
+ test0 = value;
+ },
+ get package(){
+ return test0;
+ },
+ set protected(value){
+ test1 = value;
+ },
+ get protected(){
+ return test1
+ },
+ set static(value){
+ test2 = value;
+ },
+ get static(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'package',
+ 'protected',
+ 'static'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-16.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-16.js
new file mode 100644
index 000000000..91ff6b9c8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-16.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-16.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: undefined, NaN, Infinity
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set undefined(value){
+ test0 = value;
+ },
+ get undefined(){
+ return test0;
+ },
+ set NaN(value){
+ test1 = value;
+ },
+ get NaN(){
+ return test1;
+ },
+ set Infinity(value){
+ test2 = value;
+ },
+ get Infinity(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'undefined',
+ 'NaN',
+ 'Infinity'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-2.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-2.js
new file mode 100644
index 000000000..9af600938
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-2.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: break, case, do
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set break(value){
+ test0 = value;
+ },
+ get break(){
+ return test0;
+ },
+ set case(value){
+ test1 = value;
+ },
+ get case(){
+ return test1;
+ },
+ set do(value){
+ test2 = value;
+ },
+ get do(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'break',
+ 'case',
+ 'do'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-3.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-3.js
new file mode 100644
index 000000000..b26b4d020
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-3.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-3.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: instanceof, typeof, else
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set instanceof(value){
+ test0 = value;
+ },
+ get instanceof(){
+ return test0;
+ },
+ set typeof(value){
+ test1 = value;
+ },
+ get typeof(){
+ return test1;
+ },
+ set else(value){
+ test2 = value;
+ },
+ get else(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'instanceof',
+ 'typeof',
+ 'else'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-4.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-4.js
new file mode 100644
index 000000000..b8de25452
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-4.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-4.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: new, var, catch
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set new(value){
+ test0 = value;
+ },
+ get new(){
+ return test0;
+ },
+ set var(value){
+ test1 = value;
+ },
+ get var(){
+ return test1;
+ },
+ set catch(value){
+ test2 = value;
+ },
+ get catch(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'new',
+ 'var',
+ 'catch'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-5.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-5.js
new file mode 100644
index 000000000..26d5f3aac
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-5.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-5.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: finally, return, void
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set finally(value){
+ test0 = value;
+ },
+ get finally(){
+ return test0;
+ },
+ set return(value){
+ test1 = value;
+ },
+ get return(){
+ return test1;
+ },
+ set void(value){
+ test2 = value;
+ },
+ get void(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'finally',
+ 'return',
+ 'void'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-6.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-6.js
new file mode 100644
index 000000000..4b5f217f4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-6.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-6.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: continue, for, switch
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set continue(value){
+ test0 = value;
+ },
+ get continue(){
+ return test0;
+ },
+ set for(value){
+ test1 = value;
+ },
+ get for(){
+ return test1;
+ },
+ set switch(value){
+ test2 = value;
+ },
+ get switch(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'continue',
+ 'for',
+ 'switch'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-7.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-7.js
new file mode 100644
index 000000000..58555e62e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-7.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-7.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: while, debugger, function
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set while(value){
+ test0 = value;
+ },
+ get while(){
+ return test0
+ },
+ set debugger(value){
+ test1 = value;
+ },
+ get debugger(){
+ return test1;
+ },
+ set function(value){
+ test2 = value;
+ },
+ get function(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'while' ,
+ 'debugger',
+ 'function'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-8.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-8.js
new file mode 100644
index 000000000..c6c39dd22
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-8.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-8.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: this, with, default
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set this(value){
+ test0 = value;
+ },
+ get this(){
+ return test0;
+ },
+ set with(value){
+ test1 = value;
+ },
+ get with(){
+ return test1;
+ },
+ set default(value){
+ test2 = value;
+ },
+ get default(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'this',
+ 'with',
+ 'default'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-9.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-9.js
new file mode 100644
index 000000000..f61ec565b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1-8-9.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1-8-9.js
+ * @description Allow reserved words as property names by set function within an object, accessed via indexing: if, throw, delete
+ */
+
+
+function testcase() {
+ var test0 = 0, test1 = 1, test2 = 2;
+ var tokenCodes = {
+ set if(value){
+ test0 = value;
+ },
+ get if(){
+ return test0;
+ },
+ set throw(value){
+ test1 = value;
+ },
+ get throw(){
+ return test1
+ },
+ set delete(value){
+ test2 = value;
+ },
+ get delete(){
+ return test2;
+ }
+ };
+ var arr = [
+ 'if',
+ 'throw',
+ 'delete'
+ ];
+ for (var i = 0; i < arr.length; i++) {
+ if (tokenCodes[arr[i]] !== i) {
+ return false;
+ };
+ }
+ return true;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.1.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.1.js
new file mode 100644
index 000000000..89653b5cd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.1.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "break" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.1.js
+ * @description Checking if execution of "break=1" fails
+ * @negative
+ */
+
+break = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.10.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.10.js
new file mode 100644
index 000000000..0511807b6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.10.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "for" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.10.js
+ * @description Checking if execution of "for=1" fails
+ * @negative
+ */
+
+for = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.11.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.11.js
new file mode 100644
index 000000000..39d4b7efa
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.11.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "function" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.11.js
+ * @description Checking if execution of "function=1" fails
+ * @negative
+ */
+
+function = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.12.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.12.js
new file mode 100644
index 000000000..43433a6b5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.12.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "if" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.12.js
+ * @description Checking if execution of "if=1" fails
+ * @negative
+ */
+
+if = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.13.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.13.js
new file mode 100644
index 000000000..2e52df961
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.13.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "in" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.13.js
+ * @description Checking if execution of "in=1" fails
+ * @negative
+ */
+
+in = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.14.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.14.js
new file mode 100644
index 000000000..5867436c7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.14.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "instanceof" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.14.js
+ * @description Checking if execution of "instanceof=1" fails
+ * @negative
+ */
+
+instanceof = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.15.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.15.js
new file mode 100644
index 000000000..56ec3af72
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.15.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "new" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.15.js
+ * @description Checking if execution of "new=1" fails
+ * @negative
+ */
+
+new = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.16.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.16.js
new file mode 100644
index 000000000..7f6a21a7c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.16.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "return" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.16.js
+ * @description Checking if execution of "return=1" fails
+ * @negative
+ */
+
+return = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.17.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.17.js
new file mode 100644
index 000000000..34024b4d4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.17.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "switch" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.17.js
+ * @description Checking if execution of "switch=1" fails
+ * @negative
+ */
+
+switch = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.18.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.18.js
new file mode 100644
index 000000000..6068789b6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.18.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "this" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.18.js
+ * @description Checking if execution of "this=1" fails
+ * @negative
+ */
+
+this = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.19.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.19.js
new file mode 100644
index 000000000..bb5ce8b7d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.19.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "throw" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.19.js
+ * @description Checking if execution of "throw=1" fails
+ * @negative
+ */
+
+throw = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.2.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.2.js
new file mode 100644
index 000000000..fa0b3a8fd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.2.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "case" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.2.js
+ * @description Checking if execution of "case=1" fails
+ * @negative
+ */
+
+case = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.20.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.20.js
new file mode 100644
index 000000000..62ce326f6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.20.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "try" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.20.js
+ * @description Checking if execution of "try=1" fails
+ * @negative
+ */
+
+try = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.21.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.21.js
new file mode 100644
index 000000000..d2aeca3fc
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.21.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "typeof" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.21.js
+ * @description Checking if execution of "typeof=1" fails
+ * @negative
+ */
+
+typeof = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.22.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.22.js
new file mode 100644
index 000000000..2530ab8e7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.22.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "var" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.22.js
+ * @description Checking if execution of "var=1" fails
+ * @negative
+ */
+
+var = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.23.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.23.js
new file mode 100644
index 000000000..61f99bce1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.23.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "void" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.23.js
+ * @description Checking if execution of "void=1" fails
+ * @negative
+ */
+
+void = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.24.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.24.js
new file mode 100644
index 000000000..8c6c2816d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.24.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "while" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.24.js
+ * @description Checking if execution of "while=1" fails
+ * @negative
+ */
+
+while = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.25.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.25.js
new file mode 100644
index 000000000..15a7745b1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.25.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "with" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.25.js
+ * @description Checking if execution of "with=1" fails
+ * @negative
+ */
+
+with = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.3.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.3.js
new file mode 100644
index 000000000..f69193845
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.3.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "catch" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.3.js
+ * @description Checking if execution of "catch=1" fails
+ * @negative
+ */
+
+catch = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.4.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.4.js
new file mode 100644
index 000000000..86c02078d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.4.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "continue" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.4.js
+ * @description Checking if execution of "contunue=1" fails
+ * @negative
+ */
+
+continue = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.5.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.5.js
new file mode 100644
index 000000000..52ad11b46
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.5.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "default" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.5.js
+ * @description Checking if execution of "default=1" fails
+ * @negative
+ */
+
+default = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.6.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.6.js
new file mode 100644
index 000000000..b6c24d8bf
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.6.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "delete" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.6.js
+ * @description Checking if execution of "delete=1" fails
+ * @negative
+ */
+
+delete = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.7.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.7.js
new file mode 100644
index 000000000..bce1d54ec
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.7.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "do" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.7.js
+ * @description Checking if execution of "do=1" fails
+ * @negative
+ */
+
+do = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.8.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.8.js
new file mode 100644
index 000000000..b51909070
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.8.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "else" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.8.js
+ * @description Checking if execution of "else=1" fails
+ * @negative
+ */
+
+else = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.9.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.9.js
new file mode 100644
index 000000000..cea582656
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.9.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "finally" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.9.js
+ * @description Checking if execution of "finally=1" fails
+ * @negative
+ */
+
+finally = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/browser.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/browser.js
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/shell.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.1/shell.js
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2-1gs.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2-1gs.js
new file mode 100644
index 000000000..b76c692e7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2-1gs.js
@@ -0,0 +1,16 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2-1gs.js
+ * @description Strict Mode - SyntaxError is thrown when FutureReservedWord 'implements' occurs in strict mode code
+ * @onlyStrict
+ * @negative ^((?!NotEarlyError).)*$
+ */
+
+"use strict";
+throw NotEarlyError;
+var implements = 1;
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-17-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-17-s.js
new file mode 100644
index 000000000..99014065a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-17-s.js
@@ -0,0 +1,23 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1-17-s.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: implements (implements)
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var \u0069mplements = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-18-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-18-s.js
new file mode 100644
index 000000000..3327995db
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-18-s.js
@@ -0,0 +1,23 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1-18-s.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: l\u0065t (let)
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var l\u0065t = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-19-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-19-s.js
new file mode 100644
index 000000000..14a5183d8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-19-s.js
@@ -0,0 +1,22 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1-19-s.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: privat\u0065 (private)
+ * @onlyStrict
+ */
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var privat\u0065 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-20-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-20-s.js
new file mode 100644
index 000000000..846805b69
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-20-s.js
@@ -0,0 +1,22 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1-20-s.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0070\u0075\u0062\u006c\u0069\u0063 (public)
+ * @onlyStrict
+ */
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var \u0070\u0075\u0062\u006c\u0069\u0063 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-21-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-21-s.js
new file mode 100644
index 000000000..f0536eac3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-21-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1-21-s.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0079ield (yield)
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var \u0079ield = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-22-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-22-s.js
new file mode 100644
index 000000000..5eb6d1ec6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-22-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1-22-s.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: inte\u0072face (interface)
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var inte\u0072face = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-23-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-23-s.js
new file mode 100644
index 000000000..db11bad05
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-23-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1-23-s.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: packag\u0065 (package)
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var packag\u0065 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-24-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-24-s.js
new file mode 100644
index 000000000..f2c7e9f90
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-24-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1-24-s.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0070\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064 (protected)
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var \u0070\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-25-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-25-s.js
new file mode 100644
index 000000000..b6ca63f82
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1-25-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1-25-s.js
+ * @description 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0073\u0074\u0061\u0074\u0069\u0063 (static)
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var \u0073\u0074\u0061\u0074\u0069\u0063 = 123;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-1-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-1-s.js
new file mode 100644
index 000000000..3c34bc7cb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-1-s.js
@@ -0,0 +1,23 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-1-s.js
+ * @description Strict Mode - SyntaxError is thrown when FutureReservedWord 'implements' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var implements = 1;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-10-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-10-s.js
new file mode 100644
index 000000000..8c5004d91
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-10-s.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-10-s.js
+ * @description Strict Mode - SyntaxError isn't thrown when 'IMPLEMENTS' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ var IMPLEMENTS = 1;
+ return IMPLEMENTS === 1;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-11-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-11-s.js
new file mode 100644
index 000000000..34a017854
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-11-s.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-11-s.js
+ * @description Strict Mode - SyntaxError isn't thrown when 'Implements' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ var Implements = 1;
+ return Implements === 1;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-12-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-12-s.js
new file mode 100644
index 000000000..14796c164
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-12-s.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-12-s.js
+ * @description Strict Mode - SyntaxError isn't thrown when 'implement' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ var implement = 1;
+ return implement === 1;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-13-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-13-s.js
new file mode 100644
index 000000000..4513e1222
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-13-s.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-13-s.js
+ * @description Strict Mode - SyntaxError isn't thrown when 'implementss' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ var implementss = 1;
+ return implementss === 1;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-14-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-14-s.js
new file mode 100644
index 000000000..4863705c0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-14-s.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-14-s.js
+ * @description Strict Mode - SyntaxError isn't thrown when 'implements0' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ var implements0 = 1;
+ return implements0 === 1;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-16-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-16-s.js
new file mode 100644
index 000000000..16f6bc191
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-16-s.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-16-s.js
+ * @description Strict Mode - SyntaxError isn't thrown when '_implements' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ var _implements = 1;
+ return _implements === 1;
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-2-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-2-s.js
new file mode 100644
index 000000000..9f922e41d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-2-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-2-s.js
+ * @description Strict Mode - SyntaxError is thrown when FutureReservedWord 'let' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var let = 1;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-3-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-3-s.js
new file mode 100644
index 000000000..77530dd7b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-3-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-3-s.js
+ * @description Strict Mode - SyntaxError is thrown when FutureReservedWord 'private' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var private = 1;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-4-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-4-s.js
new file mode 100644
index 000000000..6f021380b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-4-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-4-s.js
+ * @description Strict Mode - SyntaxError is thrown when FutureReservedWord 'public' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var public = 1;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-5-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-5-s.js
new file mode 100644
index 000000000..f6a798385
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-5-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-5-s.js
+ * @description Strict Mode - SyntaxError is thrown when FutureReservedWord 'yield' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var yield = 1;")
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-6-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-6-s.js
new file mode 100644
index 000000000..3e1e35ccd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-6-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-6-s.js
+ * @description Strict Mode - SyntaxError is thrown when FutureReservedWord 'interface' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var interface = 1;")
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-7-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-7-s.js
new file mode 100644
index 000000000..6d2487376
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-7-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-7-s.js
+ * @description Strict Mode - SyntaxError is thrown when FutureReservedWord 'package' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var package = 1;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-8-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-8-s.js
new file mode 100644
index 000000000..8e2f8e8fe
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-8-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-8-s.js
+ * @description Strict Mode - SyntaxError is thrown when FutureReservedWord 'protected' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var protected = 1;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-9-s.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-9-s.js
new file mode 100644
index 000000000..6e5ebfd21
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-9-s.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.6/7.6.1/7.6.1.2/7.6.1.2-9-s.js
+ * @description Strict Mode - SyntaxError is thrown when FutureReservedWord 'static' occurs in strict mode code
+ * @onlyStrict
+ */
+
+
+
+
+function testcase() {
+ "use strict";
+
+ try {
+ eval("var static = 1;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.1.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.1.js
new file mode 100644
index 000000000..4b7573d26
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.1.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "abstract" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.1.js
+ * @description Checking if execution of "abstract=1" succeeds
+ */
+
+var abstract = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.10.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.10.js
new file mode 100644
index 000000000..d255891bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.10.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "export" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.10.js
+ * @description Checking if execution of "export=1" fails
+ * @negative
+ */
+
+var export = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.11.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.11.js
new file mode 100644
index 000000000..f95dbf77e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.11.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "extends" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.11.js
+ * @description Checking if execution of "extends=1" fails
+ * @negative
+ */
+
+var extends = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.12.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.12.js
new file mode 100644
index 000000000..41d1a2aa3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.12.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "final" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.12.js
+ * @description Checking if execution of "final=1" succeeds
+ */
+
+var final = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.13.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.13.js
new file mode 100644
index 000000000..fcea14220
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.13.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "float" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.13.js
+ * @description Checking if execution of "float=1" succeeds
+ */
+
+var float = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.14.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.14.js
new file mode 100644
index 000000000..a8c81aef6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.14.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "goto" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.14.js
+ * @description Checking if execution of "goto=1" succeeds
+ */
+
+var goto = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15.js
new file mode 100644
index 000000000..b1d3adb8a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "implements" token can not be used as identifier in strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15.js
+ * @description Checking if execution of "implements=1" fails in strict code
+ * @onlyStrict
+ * @negative
+ */
+
+"use strict";
+
+var implements = 1;
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15ns.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15ns.js
new file mode 100644
index 000000000..845f7914a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "implements" token can be used as identifier in non-strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15ns.js
+ * @description Checking if execution of "implements=1" succeeds in non-strict code
+ * @noStrict
+ */
+
+var implements = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.16.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.16.js
new file mode 100644
index 000000000..0e28098f0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.16.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "import" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.16.js
+ * @description Checking if execution of "import=1" fails
+ * @negative
+ */
+
+var import = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.17.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.17.js
new file mode 100644
index 000000000..97bd27342
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.17.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "int" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.17.js
+ * @description Checking if execution of "int=1" succeeds
+ */
+
+var int = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18.js
new file mode 100644
index 000000000..e8dd1ff42
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "interface" token can not be used as identifier in strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18.js
+ * @description Checking if execution of "interface = 1" fails in
+ * strict code
+ * @onlyStrict
+ * @negative
+ */
+
+"use strict";
+var interface = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18ns.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18ns.js
new file mode 100644
index 000000000..878a7cd42
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18ns.js
@@ -0,0 +1,15 @@
+// Copyright 2011 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "interface" token can be used as identifier in
+ * non-strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18ns.js
+ * @description Checking if execution of "interface = 1" succeeds in
+ * non-strict code
+ * @noStrict
+ */
+
+var interface = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.19.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.19.js
new file mode 100644
index 000000000..d4905b5aa
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.19.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "long" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.19.js
+ * @description Checking if execution of "long=1" succeeds
+ */
+
+var long = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.2.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.2.js
new file mode 100644
index 000000000..16f86cd48
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.2.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "boolean" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.2.js
+ * @description Checking if execution of "boolean=1" succeeds
+ */
+
+var boolean = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.20.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.20.js
new file mode 100644
index 000000000..1646a5a8f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.20.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "native" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.20.js
+ * @description Checking if execution of "native=1" succeeds
+ */
+
+var native = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21.js
new file mode 100644
index 000000000..ef2d1dacc
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "package" token can not be used as identifier in strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21.js
+ * @description Checking if execution of "package=1" fails in strict code
+ * @onlyStrict
+ * @negative
+ */
+
+"use strict";
+var package = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21ns.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21ns.js
new file mode 100644
index 000000000..3a33532fe
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "package" token can be used as identifier in non-strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21ns.js
+ * @description Checking if execution of "package=1" succeeds in non-strict code
+ * @noStrict
+ */
+
+var package = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22.js
new file mode 100644
index 000000000..45fc83f29
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "private" token can not be used as identifier in strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22.js
+ * @description Checking if execution of "private=1" fails in strict code
+ * @onlyStrict
+ * @negative
+ */
+
+"use strict";
+var private = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22ns.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22ns.js
new file mode 100644
index 000000000..0562ca843
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "private" token can be used as identifier in non-strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22ns.js
+ * @description Checking if execution of "private=1" succeeds in non-strict code
+ * @noStrict
+ */
+
+var private = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23.js
new file mode 100644
index 000000000..c04b13172
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "protected" token can not be used as identifier in strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23.js
+ * @description Checking if execution of "protected=1" fails in
+ * strict code
+ * @onlyStrict
+ * @negative
+ */
+
+"use strict";
+var protected = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23ns.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23ns.js
new file mode 100644
index 000000000..499512d5b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "protected" token can be used as identifier in non-strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23ns.js
+ * @description Checking if execution of "protected=1" succeeds in non-strict code
+ * @noStrict
+ */
+
+var protected = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24.js
new file mode 100644
index 000000000..55f99e8fd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "public" token can not be used as identifier in strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24.js
+ * @description Checking if execution of "public=1" fails in strict code
+ * @onlyStrict
+ * @negative
+ */
+
+"use strict";
+var public = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24ns.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24ns.js
new file mode 100644
index 000000000..7090147cd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "public" token can be used as identifier in non-strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24ns.js
+ * @description Checking if execution of "public=1" succeeds in non-strict code
+ * @noStrict
+ */
+
+var public = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.25.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.25.js
new file mode 100644
index 000000000..0c11e3cf3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.25.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "short" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.25.js
+ * @description Checking if execution of "short=1" succeeds
+ */
+
+var short = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26.js
new file mode 100644
index 000000000..a1f336935
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "static" token can not be used as identifier in strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26.js
+ * @description Checking if execution of "static=1" fails in strict code
+ * @onlyStrict
+ * @negative
+ */
+
+"use strict";
+var static = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26ns.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26ns.js
new file mode 100644
index 000000000..2e7e1f7b7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "static" token can be used as identifier in non-strict code
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26ns.js
+ * @description Checking if execution of "static=1" succeeds in non-strict code
+ * @noStrict
+ */
+
+var static = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.27.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.27.js
new file mode 100644
index 000000000..c78862fb9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.27.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "super" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.27.js
+ * @description Checking if execution of "super=1" fails
+ * @negative
+ */
+
+var super = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.28.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.28.js
new file mode 100644
index 000000000..515372a7a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.28.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "synchronized" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.28.js
+ * @description Checking if execution of "synchronized=1" succeeds
+ */
+
+var synchronized = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.29.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.29.js
new file mode 100644
index 000000000..54dec6155
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.29.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "throws" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.29.js
+ * @description Checking if execution of "throws=1" succeeds
+ */
+
+var throws = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.3.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.3.js
new file mode 100644
index 000000000..50c5d7885
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.3.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "byte" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.3.js
+ * @description Checking if execution of "byte=1" succeeds
+ */
+
+var byte = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.30.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.30.js
new file mode 100644
index 000000000..37128f047
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.30.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "transient" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.30.js
+ * @description Checking if execution of "transient=1" succeeds
+ */
+
+var transient = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.31.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.31.js
new file mode 100644
index 000000000..57fb357d8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.31.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "volatile" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.31.js
+ * @description Checking if execution of "volatile=1" succeeds
+ */
+
+var volatile = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.4.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.4.js
new file mode 100644
index 000000000..1af1677e4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.4.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "char" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.4.js
+ * @description Checking if execution of "char=1" succeeds
+ */
+
+var char = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.5.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.5.js
new file mode 100644
index 000000000..b84b44248
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.5.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "class" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.5.js
+ * @description Checking if execution of "class=1" fails
+ * @negative
+ */
+
+var class = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.6.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.6.js
new file mode 100644
index 000000000..da95d7ebf
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.6.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "const" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.6.js
+ * @description Checking if execution of "const=1" fails
+ * @negative
+ */
+
+var const = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.7.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.7.js
new file mode 100644
index 000000000..ed4c3f0fc
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.7.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "debugger" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.7.js
+ * @description Checking if execution of "debugger=1" fails
+ * @negative
+ */
+
+var debugger = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.8.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.8.js
new file mode 100644
index 000000000..70a0a0a49
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.8.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "double" token can be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.8.js
+ * @description Checking if execution of "double=1" succeeds
+ */
+
+var double = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.9.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.9.js
new file mode 100644
index 000000000..5294cb0d0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.9.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "enum" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.9.js
+ * @description Checking if execution of "enum=1" fails
+ * @negative
+ */
+
+var enum = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/browser.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/browser.js
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/shell.js b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/7.6.1.2/shell.js
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.1.js b/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.1.js
new file mode 100644
index 000000000..d97c7843a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.1.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "null" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/S7.6.1_A1.1.js
+ * @description Checking if execution of "null = 1" fails
+ * @negative
+ */
+
+null = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.2.js b/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.2.js
new file mode 100644
index 000000000..2c49731cb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.2.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "true" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/S7.6.1_A1.2.js
+ * @description Checking if execution of "true=1" fails
+ * @negative
+ */
+
+true = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.3.js b/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.3.js
new file mode 100644
index 000000000..01cf52f75
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A1.3.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The "false" token can not be used as identifier
+ *
+ * @path ch07/7.6/7.6.1/S7.6.1_A1.3.js
+ * @description Checking if execution of "false=1" fails
+ * @negative
+ */
+
+false = 1;
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A2.js b/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A2.js
new file mode 100644
index 000000000..e123f067f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/S7.6.1_A2.js
@@ -0,0 +1,121 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * List of words that are not reserved
+ *
+ * @path ch07/7.6/7.6.1/S7.6.1_A2.js
+ * @description Try assign 1 for not reserved words
+ */
+
+// a
+var and = 1;
+var and_eq = 1;
+var as = 1;
+var asm = 1;
+var assert = 1;
+var auto = 1;
+// b
+var base = 1;
+var bitand = 1;
+var bitor = 1;
+var bool = 1;
+var byvalue = 1;
+// c
+var checked = 1;
+var clone = 1;
+var comment = 1;
+var compl = 1;
+var const_cast = 1;
+// d
+var decimal = 1;
+var delegate = 1;
+var dynamic_cast = 1;
+// e
+var explicit = 1;
+var extern = 1;
+var equals = 1;
+var event = 1;
+// f
+var finalize = 1;
+var fixed = 1;
+var friend = 1;
+var foreach = 1;
+var future = 1;
+// g
+var getClass = 1;
+var generic = 1;
+// h
+var hashCode = 1;
+// i
+var implicit = 1;
+var infinity = 1;
+var inline = 1;
+var inner = 1;
+var internal = 1;
+var is = 1;
+// j
+// k
+// l
+var lock = 1;
+// m
+var mutable = 1;
+// n
+var namespace = 1;
+var not = 1;
+var notify = 1;
+var notifyAll = 1;
+var not_eq = 1;
+// o
+var object = 1;
+var operator = 1;
+var or = 1;
+var or_eq = 1;
+var out = 1;
+var outer = 1;
+var override = 1;
+// p
+var params = 1;
+// q
+// r
+var readonly = 1;
+var reinterpret_cast = 1;
+var ref = 1;
+var register = 1;
+
+// s
+var sbyte = 1;
+var signed = 1;
+var sizeof = 1;
+var stackalloc = 1;
+var static_cast = 1;
+var string = 1;
+var strictfp = 1;
+var struct = 1;
+// t
+var template = 1;
+var toString = 1;
+var typedef = 1;
+var typeid = 1;
+// u
+var uint = 1;
+var unchecked = 1;
+var undefiend = 1;
+var union = 1;
+var unsafe = 1;
+var unsigned = 1;
+var use = 1;
+var using = 1;
+var ushort = 1;
+// v
+var valueOf = 1;
+var virtual = 1;
+// w
+var wait = 1;
+var wchar_t = 1;
+// x
+var xor = 1;
+var xor_eq = 1;
+// y
+// z
+
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/browser.js b/js/src/tests/test262/ch07/7.6/7.6.1/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/browser.js
diff --git a/js/src/tests/test262/ch07/7.6/7.6.1/shell.js b/js/src/tests/test262/ch07/7.6/7.6.1/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/7.6.1/shell.js
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A1.2_T1.js b/js/src/tests/test262/ch07/7.6/S7.6_A1.2_T1.js
new file mode 100644
index 000000000..54aee1064
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A1.2_T1.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * IdentifierStart :: $
+ *
+ * @path ch07/7.6/S7.6_A1.2_T1.js
+ * @description Create variable $
+ */
+
+//CHECK#1
+var $ = 1;
+if ($ !== 1) {
+ $ERROR('#1: var $ = 1; $ === 1. Actual: ' + ($));
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A1.2_T2.js b/js/src/tests/test262/ch07/7.6/S7.6_A1.2_T2.js
new file mode 100644
index 000000000..d6474ac41
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A1.2_T2.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * IdentifierStart :: $
+ *
+ * @path ch07/7.6/S7.6_A1.2_T2.js
+ * @description The $ as unicode character \u0024
+ */
+
+//CHECK#1
+var \u0024 = 1;
+if ($ !== 1) {
+ $ERROR('#1: var \\u0024 = 1; $ === 1. Actual: ' + ($));
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A1.2_T3.js b/js/src/tests/test262/ch07/7.6/S7.6_A1.2_T3.js
new file mode 100644
index 000000000..571075a76
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A1.2_T3.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * IdentifierStart :: $
+ *
+ * @path ch07/7.6/S7.6_A1.2_T3.js
+ * @description The $ as unicode character \u0024
+ */
+
+//CHECK#1
+var identifier = String.fromCharCode(0x0024);
+eval("var " + identifier + "=1");
+if (eval(identifier + "===1") !== true) {
+ $ERROR('#1: var identifier = String.fromCharCode(0x0024); eval("var " + identifier + "=1"); eval(identifier + "===1") === true');
+}
+
+//CHECK#2
+if ("$" !== String.fromCharCode(0x0024)) {
+ $ERROR('#2: "$" === String.fromCharCode(0x0024)');
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A1.3_T1.js b/js/src/tests/test262/ch07/7.6/S7.6_A1.3_T1.js
new file mode 100644
index 000000000..8d1164d2b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A1.3_T1.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * IdentifierStart :: _
+ *
+ * @path ch07/7.6/S7.6_A1.3_T1.js
+ * @description Create variable _
+ */
+
+//CHECK#1
+var _ = 1;
+if (_ !== 1) {
+ $ERROR('#1: var _ = 1; _ === 1. Actual: ' + (_));
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A1.3_T2.js b/js/src/tests/test262/ch07/7.6/S7.6_A1.3_T2.js
new file mode 100644
index 000000000..ba300f76d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A1.3_T2.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * IdentifierStart :: _
+ *
+ * @path ch07/7.6/S7.6_A1.3_T2.js
+ * @description The _ as unicode character \u005F
+ */
+
+//CHECK#1
+var \u005F = 1;
+if (_ !== 1) {
+ $ERROR('#1: var \\u005F = 1; _ === 1. Actual: ' + (_));
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A1.3_T3.js b/js/src/tests/test262/ch07/7.6/S7.6_A1.3_T3.js
new file mode 100644
index 000000000..e3a8361c2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A1.3_T3.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * IdentifierStart :: _
+ *
+ * @path ch07/7.6/S7.6_A1.3_T3.js
+ * @description The _ as unicode character \u005F
+ */
+
+//CHECK#1
+var identifier = String.fromCharCode(0x005F);
+eval("var " + identifier + "=1");
+if (eval(identifier + "===1") !== true) {
+ $ERROR('#1: var identifier = String.fromCharCode(0x005F); eval("var " + identifier + "=1"); eval(identifier + "===1") === true');
+}
+
+//CHECK#2
+if ("_" !== String.fromCharCode(0x005F)) {
+ $ERROR('#2: "_" === String.fromCharCode(0x005F)');
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T1.js b/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T1.js
new file mode 100644
index 000000000..5ef24abef
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T1.js
@@ -0,0 +1,75 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * IdentifierPart :: IdentifierStart
+ *
+ * @path ch07/7.6/S7.6_A2.1_T1.js
+ * @description IdentifierStart :: UnicodeLetter
+ */
+
+//CHECK#1
+try {
+ var identifier = "x" + "x";
+ eval("var " + identifier + "=1");
+ if (xx !== 1) {
+ $ERROR('#1.1: var identifier = "x" + "x"; eval("var " + identifier + "=1"); xx === 1. Actual: ' + (xx));
+ }
+} catch (e) {
+ $ERROR('#1.2: var identifier = "x" + "x"; eval("var " + identifier + "=1"); xx === 1. Actual: ' + (xx));
+}
+
+//CHECK#2
+try {
+ var identifier = "x" + String.fromCharCode(0x0078);
+ eval("var " + identifier + "=2");
+ if (xx !== 2) {
+ $ERROR('#2.1: var identifier = "x" + String.fromCharCode(0x0078); eval("var " + identifier + "=2"); xx === 2. Actual: ' + (xx));
+ }
+} catch (e) {
+ $ERROR('#2.2: var identifier = "x" + String.fromCharCode(0x0078); eval("var " + identifier + "=2"); xx === 2. Actual: ' + (xx));
+}
+
+//CHECK#3
+try {
+ var identifier = String.fromCharCode(0x0078) + String.fromCharCode(0x0078);
+ eval("var " + identifier + "=3");
+ if (xx !== 3) {
+ $ERROR('#3.1: var identifier = String.fromCharCode(0x0078) + String.fromCharCode(0x0078); eval("var " + identifier + "=3"); xx === 3. Actual: ' + (xx));
+ }
+} catch (e) {
+ $ERROR('#3.2: var identifier = String.fromCharCode(0x0078) + String.fromCharCode(0x0078); eval("var " + identifier + "=3"); xx === 3. Actual: ' + (xx));
+}
+
+//CHECK#4
+try {
+ var identifier = "$" + String.fromCharCode(0x0078);
+ eval("var " + identifier + "=4");
+ if ($x !== 4) {
+ $ERROR('#4.1: var identifier = "$" + String.fromCharCode(0x0078); eval("var " + identifier + "=4"); $x === 4. Actual: ' + ($x));
+ }
+} catch (e) {
+ $ERROR('#4.2: var identifier = "$" + String.fromCharCode(0x0078); eval("var " + identifier + "=4"); $x === 4. Actual: ' + ($x));
+}
+
+//CHECK#5
+try {
+ var identifier = "_" + String.fromCharCode(0x0078);
+ eval("var " + identifier + "=5");
+ if (_x !== 5) {
+ $ERROR('#5.1: var identifier = "_" + String.fromCharCode(0x0078); eval("var " + identifier + "=5"); _x === 5. Actual: ' + (_x));
+ }
+} catch (e) {
+ $ERROR('#5.2: var identifier = "_" + String.fromCharCode(0x0078); eval("var " + identifier + "=5"); _x === 5. Actual: ' + (_x));
+}
+
+//CHECK#6
+try {
+ var \u0078x = 6;
+ if (xx !== 6) {
+ $ERROR('#6.1: var \\u0078x = 1; xx === 6. Actual: ' + (xx));
+ }
+} catch (e) {
+ $ERROR('#6.2: var \\u0078x = 1; xx === 6. Actual: ' + (xx));
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T2.js b/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T2.js
new file mode 100644
index 000000000..3d595b566
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T2.js
@@ -0,0 +1,75 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * IdentifierPart :: IdentifierStart
+ *
+ * @path ch07/7.6/S7.6_A2.1_T2.js
+ * @description IdentifierStart :: $
+ */
+
+//CHECK#1
+try {
+ var identifier = "x" + "$";
+ eval("var " + identifier + "=1");
+ if (x$ !== 1) {
+ $ERROR('#1.1: var identifier = "x" + "$"; eval("var " + identifier + "=1"); x$ === 1. Actual: ' + (x$));
+ }
+} catch (e) {
+ $ERROR('#1.2: var identifier = "x" + "$"; eval("var " + identifier + "=1"); x$ === 1. Actual: ' + (x$));
+}
+
+//CHECK#2
+try {
+ var identifier = String.fromCharCode(0x0078) + "$";
+ eval("var " + identifier + "=2");
+ if (x$ !== 2) {
+ $ERROR('#2.1: var identifier = String.fromCharCode(0x0078) + "$"; eval("var " + identifier + "=2"); x$ === 2. Actual: ' + (x$));
+ }
+} catch (e) {
+ $ERROR('#2.2: var identifier = String.fromCharCode(0x0078) + "$"; eval("var " + identifier + "=2"); x$ === 2. Actual: ' + (x$));
+}
+
+//CHECK#3
+try {
+ var identifier = "$" + "$";
+ eval("var " + identifier + "=3");
+ if ($$ !== 3) {
+ $ERROR('#3.1: var identifier = "$" + "$"; eval("var " + identifier + "=3"); $$ === 3. Actual: ' + ($$));
+ }
+} catch (e) {
+ $ERROR('#3.2: var identifier = "$" + "$"; eval("var " + identifier + "=3"); $$ === 3. Actual: ' + ($$));
+}
+
+//CHECK#4
+try {
+ var identifier = String.fromCharCode(0x0024) + String.fromCharCode(0x0024);
+ eval("var " + identifier + "=4");
+ if ($$ !== 4) {
+ $ERROR('#4.1: var identifier = String.fromCharCode(0x0024) + String.fromCharCode(0x0024); eval("var " + identifier + "=4"); $$ === 4. Actual: ' + ($$));
+ }
+} catch (e) {
+ $ERROR('#4.2: var identifier = String.fromCharCode(0x0024) + String.fromCharCode(0x0024); eval("var " + identifier + "=4"); $$ === 4. Actual: ' + ($$));
+}
+
+//CHECK#5
+try {
+ var identifier = "_" + "$";
+ eval("var " + identifier + "=5");
+ if (_$ !== 5) {
+ $ERROR('#5.1: var identifier = "_" + "$"; eval("var " + identifier + "=5"); _$ === 5. Actual: ' + (_$));
+ }
+} catch (e) {
+ $ERROR('#5.2: var identifier = "_" + "$"; eval("var " + identifier + "=5"); _$ === 5. Actual: ' + (_$));
+}
+
+//CHECK#6
+try {
+ var \u0078$ = 6;
+ if (x$ !== 6) {
+ $ERROR('#6.1: var \\u0078$ = 1; x$ === 6. Actual: ' + (x$));
+ }
+} catch (e) {
+ $ERROR('#6.2: var \\u0078$ = 1; x$ === 6. Actual: ' + (x$));
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T3.js b/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T3.js
new file mode 100644
index 000000000..9c1032169
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T3.js
@@ -0,0 +1,75 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * IdentifierPart :: IdentifierStart
+ *
+ * @path ch07/7.6/S7.6_A2.1_T3.js
+ * @description IdentifierStart :: _
+ */
+
+//CHECK#1
+try {
+ var identifier = "x" + "_";
+ eval("var " + identifier + "=1");
+ if (x_ !== 1) {
+ $ERROR('#1.1: var identifier = "x" + "_"; eval("var " + identifier + "=1"); x_ === 1. Actual: ' + (x_));
+ }
+} catch (e) {
+ $ERROR('#1.2: var identifier = "x" + "_"; eval("var " + identifier + "=1"); x_ === 1. Actual: ' + (x_));
+}
+
+//CHECK#2
+try {
+ var identifier = String.fromCharCode(0x0078) + "_";
+ eval("var " + identifier + "=2");
+ if (x_ !== 2) {
+ $ERROR('#2.1: var identifier = String.fromCharCode(0x0078) + "_"; eval("var " + identifier + "=2"); x_ === 2. Actual: ' + (x_));
+ }
+} catch (e) {
+ $ERROR('#2.2: var identifier = String.fromCharCode(0x0078) + "_"; eval("var " + identifier + "=2"); x_ === 2. Actual: ' + (x_));
+}
+
+//CHECK#3
+try {
+ var identifier = "_" + "_";
+ eval("var " + identifier + "=3");
+ if (__ !== 3) {
+ $ERROR('#3.1: var identifier = "_" + "_"; eval("var " + identifier + "=3"); __ === 3. Actual: ' + (__));
+ }
+} catch (e) {
+ $ERROR('#3.2: var identifier = "_" + "_"; eval("var " + identifier + "=3"); __ === 3. Actual: ' + (__));
+}
+
+//CHECK#4
+try {
+ var identifier = String.fromCharCode(0x005F) + String.fromCharCode(0x005F);
+ eval("var " + identifier + "=4");
+ if (__ !== 4) {
+ $ERROR('#4.1: var identifier = String.fromCharCode(0x005F) + String.fromCharCode(0x005F); eval("var " + identifier + "=4"); __ === 4. Actual: ' + (__));
+ }
+} catch (e) {
+ $ERROR('#4.2: var identifier = String.fromCharCode(0x005F) + String.fromCharCode(0x005F); eval("var " + identifier + "=4"); __ === 4. Actual: ' + (__));
+}
+
+//CHECK#5
+try {
+ var identifier = "_" + "_";
+ eval("var " + identifier + "=5");
+ if (__ !== 5) {
+ $ERROR('#5.1: var identifier = "_" + "_"; eval("var " + identifier + "=5"); __ === 5. Actual: ' + (__));
+ }
+} catch (e) {
+ $ERROR('#5.2: var identifier = "_" + "_"; eval("var " + identifier + "=5"); __ === 5. Actual: ' + (__));
+}
+
+//CHECK#6
+try {
+ var \u0078_ = 6;
+ if (x_ !== 6) {
+ $ERROR('#6.1: var \\u0078_ = 1; x_ === 6. Actual: ' + (x_));
+ }
+} catch (e) {
+ $ERROR('#6.2: var \\u0078_ = 1; x_ === 6. Actual: ' + (x_));
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T4.js b/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T4.js
new file mode 100644
index 000000000..a03182254
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A2.1_T4.js
@@ -0,0 +1,50 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * IdentifierPart :: IdentifierStart
+ *
+ * @path ch07/7.6/S7.6_A2.1_T4.js
+ * @description IdentifierStart :: \UnicodeEscapeSequence
+ */
+
+//CHECK#1
+try {
+ var x\u0078 = 1;
+ if (xx !== 1) {
+ $ERROR('#1.1: var x\\u0078 = 1; xx === 1. Actual: ' + (xx));
+ }
+} catch (e) {
+ $ERROR('#1.2: var x\\u0078 = 1; xx === 1. Actual: ' + (xx));
+}
+
+//CHECK#2
+try {
+ var \u0078\u0078 = 2;
+ if (xx !== 2) {
+ $ERROR('#2.1: var \\u0078\\u0078 = 1; xx === 2. Actual: ' + (xx));
+ }
+} catch (e) {
+ $ERROR('#2.2: var \\u0078\\u0078 = 1; xx === 2. Actual: ' + (xx));
+}
+
+//CHECK#3
+try {
+ var \u0024\u0024 = 3;
+ if ($$ !== 3) {
+ $ERROR('#3.1: var \\u0024\\u0024 = 1; $$ === 3. Actual: ' + ($$));
+ }
+} catch (e) {
+ $ERROR('#3.2: var \\u0024\\u0024 = 1; $$ === 3. Actual: ' + ($$));
+}
+
+//CHECK#4
+try {
+ var \u005F\u005F = 4;
+ if (__ !== 4) {
+ $ERROR('#4.1: var \\u005F\\u005F = 1; __ === 4. Actual: ' + (__));
+ }
+} catch (e) {
+ $ERROR('#4.2: var \\u005F\\u005F = 1; __ === 4. Actual: ' + (__));
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A4.1_T1.js b/js/src/tests/test262/ch07/7.6/S7.6_A4.1_T1.js
new file mode 100644
index 000000000..1e18ed18d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A4.1_T1.js
@@ -0,0 +1,116 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of ENGLISH ALPHABET
+ *
+ * @path ch07/7.6/S7.6_A4.1_T1.js
+ * @description Check ENGLISH CAPITAL ALPHABET
+ */
+
+//CHECK#A-Z
+var \u0041 = 1;
+if (A !== 1) {
+ $ERROR('#A');
+}
+var \u0042 = 1;
+if (B !== 1) {
+ $ERROR('#B');
+}
+var \u0043 = 1;
+if (C !== 1) {
+ $ERROR('#C');
+}
+var \u0044 = 1;
+if (D !== 1) {
+ $ERROR('#D');
+}
+var \u0045 = 1;
+if (E !== 1) {
+ $ERROR('#E');
+}
+var \u0046 = 1;
+if (F !== 1) {
+ $ERROR('#F');
+}
+var \u0047 = 1;
+if (G !== 1) {
+ $ERROR('#G');
+}
+var \u0048 = 1;
+if (H !== 1) {
+ $ERROR('#H');
+}
+var \u0049 = 1;
+if (I !== 1) {
+ $ERROR('#I');
+}
+var \u004A = 1;
+if (J !== 1) {
+ $ERROR('#J');
+}
+var \u004B = 1;
+if (K !== 1) {
+ $ERROR('#K');
+}
+var \u004C = 1;
+if (L !== 1) {
+ $ERROR('#L');
+}
+var \u004D = 1;
+if (M !== 1) {
+ $ERROR('#M');
+}
+var \u004E = 1;
+if (N !== 1) {
+ $ERROR('#N');
+}
+var \u004F = 1;
+if (O !== 1) {
+ $ERROR('#O');
+}
+var \u0050 = 1;
+if (P !== 1) {
+ $ERROR('#P');
+}
+var \u0051 = 1;
+if (Q !== 1) {
+ $ERROR('#Q');
+}
+var \u0052 = 1;
+if (R !== 1) {
+ $ERROR('#R');
+}
+var \u0053 = 1;
+if (S !== 1) {
+ $ERROR('#S');
+}
+var \u0054 = 1;
+if (T !== 1) {
+ $ERROR('#T');
+}
+var \u0055 = 1;
+if (U !== 1) {
+ $ERROR('#U');
+}
+var \u0056 = 1;
+if (V !== 1) {
+ $ERROR('#V');
+}
+var \u0057 = 1;
+if (W !== 1) {
+ $ERROR('#W');
+}
+var \u0058 = 1;
+if (X !== 1) {
+ $ERROR('#X');
+}
+var \u0059 = 1;
+if (Y !== 1) {
+ $ERROR('#Y');
+}
+var \u005A = 1;
+if (Z !== 1) {
+ $ERROR('#Z');
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A4.1_T2.js b/js/src/tests/test262/ch07/7.6/S7.6_A4.1_T2.js
new file mode 100644
index 000000000..20003197e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A4.1_T2.js
@@ -0,0 +1,117 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of ENGLISH ALPHABET
+ *
+ * @path ch07/7.6/S7.6_A4.1_T2.js
+ * @description Check ENGLISH SMALL ALPHABET
+ */
+
+//CHECK#a-z
+var \u0061 = 1;
+if (a !== 1) {
+ $ERROR('#a');
+}
+var \u0062 = 1;
+if (b !== 1) {
+ $ERROR('#b');
+}
+var \u0063 = 1;
+if (c !== 1) {
+ $ERROR('#c');
+}
+var \u0064 = 1;
+if (d !== 1) {
+ $ERROR('#d');
+}
+var \u0065 = 1;
+if (e !== 1) {
+ $ERROR('#e');
+}
+var \u0066 = 1;
+if (f !== 1) {
+ $ERROR('#f');
+}
+var \u0067 = 1;
+if (g !== 1) {
+ $ERROR('#g');
+}
+var \u0068 = 1;
+if (h !== 1) {
+ $ERROR('#h');
+}
+var \u0069 = 1;
+if (i !== 1) {
+ $ERROR('#i');
+}
+var \u006A = 1;
+if (j !== 1) {
+ $ERROR('#j');
+}
+var \u006B = 1;
+if (k !== 1) {
+ $ERROR('#k');
+}
+var \u006C = 1;
+if (l !== 1) {
+ $ERROR('#l');
+}
+var \u006D = 1;
+if (m !== 1) {
+ $ERROR('#m');
+}
+var \u006E = 1;
+if (n !== 1) {
+ $ERROR('#n');
+}
+var \u006F = 1;
+if (o !== 1) {
+ $ERROR('#o');
+}
+var \u0070 = 1;
+if (p !== 1) {
+ $ERROR('#p');
+}
+var \u0071 = 1;
+if (q !== 1) {
+ $ERROR('#q');
+}
+var \u0072 = 1;
+if (r !== 1) {
+ $ERROR('#r');
+}
+var \u0073 = 1;
+if (s !== 1) {
+ $ERROR('#s');
+}
+var \u0074 = 1;
+if (t !== 1) {
+ $ERROR('#t');
+}
+var \u0075 = 1;
+if (u !== 1) {
+ $ERROR('#u');
+}
+var \u0076 = 1;
+if (v !== 1) {
+ $ERROR('#v');
+}
+var \u0077 = 1;
+if (w !== 1) {
+ $ERROR('#w');
+}
+var \u0078 = 1;
+if (x !== 1) {
+ $ERROR('#x');
+}
+var \u0079 = 1;
+if (y !== 1) {
+ $ERROR('#y');
+}
+var \u007A = 1;
+if (z !== 1) {
+ $ERROR('#z');
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A4.2_T1.js b/js/src/tests/test262/ch07/7.6/S7.6_A4.2_T1.js
new file mode 100644
index 000000000..e588b8c15
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A4.2_T1.js
@@ -0,0 +1,144 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of RUSSIAN ALPHABET
+ *
+ * @path ch07/7.6/S7.6_A4.2_T1.js
+ * @description Check RUSSIAN CAPITAL ALPHABET
+ */
+
+//CHECK#А-Я
+var \u0410 = 1;
+if (А !== 1) {
+ $ERROR('#А');
+}
+var \u0411 = 1;
+if (Б !== 1) {
+ $ERROR('#Б');
+}
+var \u0412 = 1;
+if (В !== 1) {
+ $ERROR('#В');
+}
+var \u0413 = 1;
+if (Г !== 1) {
+ $ERROR('#Г');
+}
+var \u0414 = 1;
+if (Д !== 1) {
+ $ERROR('#Д');
+}
+var \u0415 = 1;
+if (Е !== 1) {
+ $ERROR('#Е');
+}
+var \u0416 = 1;
+if (Ж !== 1) {
+ $ERROR('#Ж');
+}
+var \u0417 = 1;
+if (З !== 1) {
+ $ERROR('#З');
+}
+var \u0418 = 1;
+if (И !== 1) {
+ $ERROR('#И');
+}
+var \u0419 = 1;
+if (Й !== 1) {
+ $ERROR('#Й');
+}
+var \u041A = 1;
+if (К !== 1) {
+ $ERROR('#К');
+}
+var \u041B = 1;
+if (Л !== 1) {
+ $ERROR('#Л');
+}
+var \u041C = 1;
+if (М !== 1) {
+ $ERROR('#М');
+}
+var \u041D = 1;
+if (Н !== 1) {
+ $ERROR('#Н');
+}
+var \u041E = 1;
+if (О !== 1) {
+ $ERROR('#О');
+}
+var \u041F = 1;
+if (П !== 1) {
+ $ERROR('#П');
+}
+var \u0420 = 1;
+if (Р !== 1) {
+ $ERROR('#Р');
+}
+var \u0421 = 1;
+if (С !== 1) {
+ $ERROR('#С');
+}
+var \u0422 = 1;
+if (Т !== 1) {
+ $ERROR('#Т');
+}
+var \u0423 = 1;
+if (У !== 1) {
+ $ERROR('#У');
+}
+var \u0424 = 1;
+if (Ф !== 1) {
+ $ERROR('#Ф');
+}
+var \u0425 = 1;
+if (Х !== 1) {
+ $ERROR('#Х');
+}
+var \u0426 = 1;
+if (Ц !== 1) {
+ $ERROR('#Ц');
+}
+var \u0427 = 1;
+if (Ч !== 1) {
+ $ERROR('#Ч');
+}
+var \u0428 = 1;
+if (Ш !== 1) {
+ $ERROR('#Ш');
+}
+var \u0429 = 1;
+if (Щ !== 1) {
+ $ERROR('#Щ');
+}
+var \u042A = 1;
+if (Ъ !== 1) {
+ $ERROR('#Ъ');
+}
+var \u042B = 1;
+if (Ы !== 1) {
+ $ERROR('#Ы');
+}
+var \u042C = 1;
+if (Ь !== 1) {
+ $ERROR('#Ь');
+}
+var \u042D = 1;
+if (Э !== 1) {
+ $ERROR('#Э');
+}
+var \u042E = 1;
+if (Ю !== 1) {
+ $ERROR('#Ю');
+}
+var \u042F = 1;
+if (Я !== 1) {
+ $ERROR('#Я');
+}
+var \u0401 = 1;
+if (Ё !== 1) {
+ $ERROR('#Ё');
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A4.2_T2.js b/js/src/tests/test262/ch07/7.6/S7.6_A4.2_T2.js
new file mode 100644
index 000000000..119b94918
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A4.2_T2.js
@@ -0,0 +1,144 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of RUSSIAN ALPHABET
+ *
+ * @path ch07/7.6/S7.6_A4.2_T2.js
+ * @description Check RUSSIAN SMALL ALPHABET
+ */
+
+//CHECK#а-я
+var \u0430 = 1;
+if (а !== 1) {
+ $ERROR('#а');
+}
+var \u0431 = 1;
+if (б !== 1) {
+ $ERROR('#б');
+}
+var \u0432 = 1;
+if (в !== 1) {
+ $ERROR('#в');
+}
+var \u0433 = 1;
+if (г !== 1) {
+ $ERROR('#г');
+}
+var \u0434 = 1;
+if (д !== 1) {
+ $ERROR('#д');
+}
+var \u0435 = 1;
+if (е !== 1) {
+ $ERROR('#е');
+}
+var \u0436 = 1;
+if (ж !== 1) {
+ $ERROR('#ж');
+}
+var \u0437 = 1;
+if (з !== 1) {
+ $ERROR('#з');
+}
+var \u0438 = 1;
+if (и !== 1) {
+ $ERROR('#и');
+}
+var \u0439 = 1;
+if (й !== 1) {
+ $ERROR('#й');
+}
+var \u043A = 1;
+if (к !== 1) {
+ $ERROR('#к');
+}
+var \u043B = 1;
+if (л !== 1) {
+ $ERROR('#л');
+}
+var \u043C = 1;
+if (м !== 1) {
+ $ERROR('#м');
+}
+var \u043D = 1;
+if (н !== 1) {
+ $ERROR('#н');
+}
+var \u043E = 1;
+if (о !== 1) {
+ $ERROR('#о');
+}
+var \u043F = 1;
+if (п !== 1) {
+ $ERROR('#п');
+}
+var \u0440 = 1;
+if (р !== 1) {
+ $ERROR('#р');
+}
+var \u0441 = 1;
+if (с !== 1) {
+ $ERROR('#с');
+}
+var \u0442 = 1;
+if (т !== 1) {
+ $ERROR('#т');
+}
+var \u0443 = 1;
+if (у !== 1) {
+ $ERROR('#у');
+}
+var \u0444 = 1;
+if (ф !== 1) {
+ $ERROR('#ф');
+}
+var \u0445 = 1;
+if (х !== 1) {
+ $ERROR('#х');
+}
+var \u0446 = 1;
+if (ц !== 1) {
+ $ERROR('#ц');
+}
+var \u0447 = 1;
+if (ч !== 1) {
+ $ERROR('#ч');
+}
+var \u0448 = 1;
+if (ш !== 1) {
+ $ERROR('#ш');
+}
+var \u0449 = 1;
+if (щ !== 1) {
+ $ERROR('#щ');
+}
+var \u044A = 1;
+if (ъ !== 1) {
+ $ERROR('#ъ');
+}
+var \u044B = 1;
+if (ы !== 1) {
+ $ERROR('#ы');
+}
+var \u044C = 1;
+if (ь !== 1) {
+ $ERROR('#ь');
+}
+var \u044D = 1;
+if (э !== 1) {
+ $ERROR('#э');
+}
+var \u044E = 1;
+if (ю !== 1) {
+ $ERROR('#ю');
+}
+var \u044F = 1;
+if (я !== 1) {
+ $ERROR('#я');
+}
+var \u0451 = 1;
+if (ё !== 1) {
+ $ERROR('#ё');
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/S7.6_A4.3_T1.js b/js/src/tests/test262/ch07/7.6/S7.6_A4.3_T1.js
new file mode 100644
index 000000000..ab13aa253
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/S7.6_A4.3_T1.js
@@ -0,0 +1,52 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of DIGITS
+ *
+ * @path ch07/7.6/S7.6_A4.3_T1.js
+ * @description Identifier is $+ANY_DIGIT
+ */
+
+//CHECK#0-9
+var $\u0030 = 0;
+if ($0 !== 0) {
+ $ERROR('#0: $\\u0030 = 0; $0 === 0');
+}
+var $\u0031 = 1;
+if ($1 !== 1) {
+ $ERROR('#1: $\\u0031 = 1; $1 === 1');
+}
+var $\u0032 = 2;
+if ($2 !== 2) {
+ $ERROR('#2: $\\u0032 = 2; $2 === 2');
+}
+var $\u0033 = 3;
+if ($3 !== 3) {
+ $ERROR('#3: $\\u0033 = 3; $3 === 3');
+}
+var $\u0034 = 4;
+if ($4 !== 4) {
+ $ERROR('#4: $\\u0034 = 4; $4 === 4');
+}
+var $\u0035 = 5;
+if ($5 !== 5) {
+ $ERROR('#5: $\\u0035 = 5; $5 === 5');
+}
+var $\u0036 = 6;
+if ($6 !== 6) {
+ $ERROR('#6: $\\u0036 = 6; $6 === 6');
+}
+var $\u0037 = 7;
+if ($7 !== 7) {
+ $ERROR('#7: $\\u0037 = 7; $7 === 7');
+}
+var $\u0038 = 8;
+if ($8 !== 8) {
+ $ERROR('#8: $\\u0038 = 8; $8 === 8');
+}
+var $\u0039 = 9;
+if ($9 !== 9) {
+ $ERROR('#9: $\\u0039 = 9; $9 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.6/browser.js b/js/src/tests/test262/ch07/7.6/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/browser.js
diff --git a/js/src/tests/test262/ch07/7.6/shell.js b/js/src/tests/test262/ch07/7.6/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.6/shell.js
diff --git a/js/src/tests/test262/ch07/7.7/S7.7_A1.js b/js/src/tests/test262/ch07/7.7/S7.7_A1.js
new file mode 100644
index 000000000..e033e1164
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/S7.7_A1.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of all punctuators
+ *
+ * @path ch07/7.7/S7.7_A1.js
+ * @description Using all punctuators
+ */
+
+//CHECK#1
+ ({});[];
+ this.NaN;
+ 1 < 2 > 3 <= 4 >= 5 == 6 != 7 === 8 !== 9;
+ 1 + 2 - 3 * 4 % 5 / 6 << 7 >> 8 >>> 9;
+ this.NaN++; ++this.NaN; this.NaN--; --this.NaN;
+ 1 & 2 | 3 ^ 4 && !5 || ~6;
+ 1 ? 2 : 3;
+ this.NaN = 1; this.NaN += 2; this.NaN -= 3; this.NaN *= 4; this.NaN /= 5;
+ this.NaN %= 6; this.NaN <<= 7; this.NaN >>= 8; this.NaN >>>= 9;
+ this.NaN &= 1; this.NaN |= 2; this.NaN ^= 3;
+
diff --git a/js/src/tests/test262/ch07/7.7/S7.7_A2_T1.js b/js/src/tests/test262/ch07/7.7/S7.7_A2_T1.js
new file mode 100644
index 000000000..1a545639d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/S7.7_A2_T1.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.7/S7.7_A2_T1.js
+ * @description Try to use {} as a Unicode \u007B\u007D
+ * @negative
+ */
+
+\u007B\u007D;
+
diff --git a/js/src/tests/test262/ch07/7.7/S7.7_A2_T10.js b/js/src/tests/test262/ch07/7.7/S7.7_A2_T10.js
new file mode 100644
index 000000000..6d71a5617
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/S7.7_A2_T10.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.7/S7.7_A2_T10.js
+ * @description Try to use / as a Unicode \u002F
+ * @negative
+ */
+
+1\u002F2;
+
diff --git a/js/src/tests/test262/ch07/7.7/S7.7_A2_T2.js b/js/src/tests/test262/ch07/7.7/S7.7_A2_T2.js
new file mode 100644
index 000000000..1a06e190e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/S7.7_A2_T2.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.7/S7.7_A2_T2.js
+ * @description Try to use () as Unicode \u00281\u0029
+ * @negative
+ */
+
+\u00281\u0029;
+
diff --git a/js/src/tests/test262/ch07/7.7/S7.7_A2_T3.js b/js/src/tests/test262/ch07/7.7/S7.7_A2_T3.js
new file mode 100644
index 000000000..1b9b950f4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/S7.7_A2_T3.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.7/S7.7_A2_T3.js
+ * @description Try to use [] as a Unicode \u005B\u005D
+ * @negative
+ */
+
+\u005B\u005D;
+
diff --git a/js/src/tests/test262/ch07/7.7/S7.7_A2_T4.js b/js/src/tests/test262/ch07/7.7/S7.7_A2_T4.js
new file mode 100644
index 000000000..c877858e2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/S7.7_A2_T4.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.7/S7.7_A2_T4.js
+ * @description Try to use ; as a Unicode \u003B
+ * @negative
+ */
+
+\u003B;
+
diff --git a/js/src/tests/test262/ch07/7.7/S7.7_A2_T5.js b/js/src/tests/test262/ch07/7.7/S7.7_A2_T5.js
new file mode 100644
index 000000000..1b92226af
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/S7.7_A2_T5.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.7/S7.7_A2_T5.js
+ * @description Try to use . as a Unicode \u002E
+ * @negative
+ */
+
+x = 1;
+this\u002Ex;
+
diff --git a/js/src/tests/test262/ch07/7.7/S7.7_A2_T6.js b/js/src/tests/test262/ch07/7.7/S7.7_A2_T6.js
new file mode 100644
index 000000000..e0cb0382f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/S7.7_A2_T6.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.7/S7.7_A2_T6.js
+ * @description Try to use , as a Unicode \u002C
+ * @negative
+ */
+
+1\u002C2;
+
diff --git a/js/src/tests/test262/ch07/7.7/S7.7_A2_T7.js b/js/src/tests/test262/ch07/7.7/S7.7_A2_T7.js
new file mode 100644
index 000000000..aff3092a6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/S7.7_A2_T7.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.7/S7.7_A2_T7.js
+ * @description Try to use + as a Unicode \u002B
+ * @negative
+ */
+
+1\u002B2;
+
diff --git a/js/src/tests/test262/ch07/7.7/S7.7_A2_T8.js b/js/src/tests/test262/ch07/7.7/S7.7_A2_T8.js
new file mode 100644
index 000000000..9e9cd1ac4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/S7.7_A2_T8.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.7/S7.7_A2_T8.js
+ * @description Try to use - as a Unicode \u002D
+ * @negative
+ */
+
+1\u002D2;
+
diff --git a/js/src/tests/test262/ch07/7.7/S7.7_A2_T9.js b/js/src/tests/test262/ch07/7.7/S7.7_A2_T9.js
new file mode 100644
index 000000000..7ba61f5a9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/S7.7_A2_T9.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits
+ *
+ * @path ch07/7.7/S7.7_A2_T9.js
+ * @description Try to use * as a Unicode \u002A
+ * @negative
+ */
+
+1\u002A2;
+
diff --git a/js/src/tests/test262/ch07/7.7/browser.js b/js/src/tests/test262/ch07/7.7/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/browser.js
diff --git a/js/src/tests/test262/ch07/7.7/shell.js b/js/src/tests/test262/ch07/7.7/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.7/shell.js
diff --git a/js/src/tests/test262/ch07/7.8/7.8.1/S7.8.1_A1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.1/S7.8.1_A1_T1.js
new file mode 100644
index 000000000..e7b188b6c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.1/S7.8.1_A1_T1.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Literal :: NullLiteral
+ *
+ * @path ch07/7.8/7.8.1/S7.8.1_A1_T1.js
+ * @description Check null === null
+ */
+
+//CHECK#1
+if (null !== null) {
+ $ERROR('#1: null === null');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.1/S7.8.1_A1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.1/S7.8.1_A1_T2.js
new file mode 100644
index 000000000..340f8bed4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.1/S7.8.1_A1_T2.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Literal :: NullLiteral
+ *
+ * @path ch07/7.8/7.8.1/S7.8.1_A1_T2.js
+ * @description Check RegExp("0").exec("1") === null
+ */
+
+//CHECK#1
+if (RegExp("0").exec("1") !== null) {
+ $ERROR('#1: RegExp("0").exec("1") === null');
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.1/browser.js b/js/src/tests/test262/ch07/7.8/7.8.1/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.1/browser.js
diff --git a/js/src/tests/test262/ch07/7.8/7.8.1/shell.js b/js/src/tests/test262/ch07/7.8/7.8.1/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.1/shell.js
diff --git a/js/src/tests/test262/ch07/7.8/7.8.2/S7.8.2_A1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.2/S7.8.2_A1_T1.js
new file mode 100644
index 000000000..f2925a291
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.2/S7.8.2_A1_T1.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Literal :: BooleanLiteral
+ *
+ * @path ch07/7.8/7.8.2/S7.8.2_A1_T1.js
+ * @description BooleanLiteral :: true
+ */
+
+//CHECK#1
+if (Boolean(true) !== true) {
+ $ERROR('#1: Boolean(true) === true. Actual: Boolean(true) === ' + (Boolean(true)));
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.2/S7.8.2_A1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.2/S7.8.2_A1_T2.js
new file mode 100644
index 000000000..5adaf379d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.2/S7.8.2_A1_T2.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Literal :: BooleanLiteral
+ *
+ * @path ch07/7.8/7.8.2/S7.8.2_A1_T2.js
+ * @description BooleanLiteral :: false
+ */
+
+//CHECK#1
+if (Boolean(false) !== false) {
+ $ERROR('#1: Boolean(false) === false. Actual: Boolean(false) === ' + (Boolean(false)));
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.2/browser.js b/js/src/tests/test262/ch07/7.8/7.8.2/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.2/browser.js
diff --git a/js/src/tests/test262/ch07/7.8/7.8.2/shell.js b/js/src/tests/test262/ch07/7.8/7.8.2/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.2/shell.js
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-1-s.js b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-1-s.js
new file mode 100644
index 000000000..fa67b5095
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-1-s.js
@@ -0,0 +1,22 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.3/7.8.3-1-s.js
+ * @description Strict Mode - octal extension (010) is forbidden in strict mode
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ try {
+ eval("var _7_8_3_1 = 010;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError && typeof _7_8_3_1 === "undefined";
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-1gs.js b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-1gs.js
new file mode 100644
index 000000000..91b6ceae2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-1gs.js
@@ -0,0 +1,16 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+
+/**
+ * @path ch07/7.8/7.8.3/7.8.3-1gs.js
+ * @description Strict Mode - octal extension(010) is forbidden in strict mode
+ * @onlyStrict
+ * @negative ^((?!NotEarlyError).)*$
+ */
+
+"use strict";
+throw NotEarlyError;
+var y = 010;
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-2-s.js b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-2-s.js
new file mode 100644
index 000000000..79755f8df
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-2-s.js
@@ -0,0 +1,22 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.3/7.8.3-2-s.js
+ * @description Strict Mode - octal extension (00) is forbidden in strict mode
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ try {
+ eval("var _7_8_3_2 = 00;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError && typeof _7_8_3_2 === "undefined";
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-2gs.js b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-2gs.js
new file mode 100644
index 000000000..dae203a53
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-2gs.js
@@ -0,0 +1,17 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.3/7.8.3-2gs.js
+ * @description Strict Mode - octal extension is forbidden in strict mode (after a hex number is assigned to a variable)
+ * @onlyStrict
+ * @negative ^((?!NotEarlyError).)*$
+ */
+
+"use strict";
+throw NotEarlyError;
+var a;
+a = 0x1;
+a = 01;
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-3-s.js b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-3-s.js
new file mode 100644
index 000000000..7d33f9a5c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-3-s.js
@@ -0,0 +1,22 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.3/7.8.3-3-s.js
+ * @description Strict Mode - octal extension (01) is forbidden in strict mode
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ try {
+ eval("var _7_8_3_3 = 01;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError && typeof _7_8_3_3 === "undefined";
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-3gs.js b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-3gs.js
new file mode 100644
index 000000000..48d56d63e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-3gs.js
@@ -0,0 +1,15 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.3/7.8.3-3gs.js
+ * @description Strict Mode - octal extension is forbidden in strict mode (after a hex number is assigned to a variable from an eval)
+ * @onlyStrict
+ * @negative SyntaxError
+ */
+
+"use strict";
+var a;
+eval("a = 0x1;a = 01;");
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-4-s.js b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-4-s.js
new file mode 100644
index 000000000..53a486b05
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-4-s.js
@@ -0,0 +1,22 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.3/7.8.3-4-s.js
+ * @description Strict Mode - octal extension (06) is forbidden in strict mode
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ try {
+ eval("var _7_8_3_4 = 06;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError && typeof _7_8_3_4 === "undefined";
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-5-s.js b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-5-s.js
new file mode 100644
index 000000000..98ac43f58
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-5-s.js
@@ -0,0 +1,22 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.3/7.8.3-5-s.js
+ * @description Strict Mode - octal extension (07) is forbidden in strict mode
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ try {
+ eval("var _7_8_3_5 = 07;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError && typeof _7_8_3_5 === "undefined";
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-6-s.js b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-6-s.js
new file mode 100644
index 000000000..fe2f60c64
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-6-s.js
@@ -0,0 +1,22 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.3/7.8.3-6-s.js
+ * @description Strict Mode - octal extension (000) is forbidden in strict mode
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ try {
+ eval("var _7_8_3_6 = 000;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError && typeof _7_8_3_6 === "undefined";
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-7-s.js b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-7-s.js
new file mode 100644
index 000000000..d0ffda882
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/7.8.3-7-s.js
@@ -0,0 +1,22 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.3/7.8.3-7-s.js
+ * @description Strict Mode - octal extension (005) is forbidden in strict mode
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ "use strict";
+ try {
+ eval("var _7_8_3_7 = 005;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError && typeof _7_8_3_7 === "undefined";
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.1_T1.js
new file mode 100644
index 000000000..ff82f498e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.1_T1.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A1.1_T1.js
+ * @description DecimalIntegerLiteral :: 0, NoNZeroDigit
+ */
+
+//CHECK#0
+if (0 !== 0) {
+ $ERROR('#0: 0 === 0');
+}
+
+//CHECK#1
+if (1 !== 1) {
+ $ERROR('#1: 1 === 1');
+}
+
+//CHECK#2
+if (2 !== 2) {
+ $ERROR('#2: 2 === 2');
+}
+
+//CHECK#3
+if (3 !== 3) {
+ $ERROR('#3: 3 === 3');
+}
+
+//CHECK#4
+if (4 !== 4) {
+ $ERROR('#4: 4 === 4');
+}
+
+//CHECK#5
+if (5 !== 5) {
+ $ERROR('#5: 5 === 5');
+}
+
+//CHECK#6
+if (6 !== 6) {
+ $ERROR('#6: 6 === 6');
+}
+
+//CHECK#7
+if (7 !== 7) {
+ $ERROR('#7: 7 === 7');
+}
+
+//CHECK#8
+if (8 !== 8) {
+ $ERROR('#8: 8 === 8');
+}
+
+//CHECK#9
+if (9 !== 9) {
+ $ERROR('#9: 9 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.1_T2.js
new file mode 100644
index 000000000..df2206462
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.1_T2.js
@@ -0,0 +1,55 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A1.1_T2.js
+ * @description DecimalIntegerLiteral :: NoNZeroDigit DecimalDigits
+ */
+
+//CHECK#1
+if (11 !== 11) {
+ $ERROR('#1: 11 === 11');
+}
+
+//CHECK#2
+if (22 !== 22) {
+ $ERROR('#2: 22 === 22');
+}
+
+//CHECK#3
+if (33 !== 33) {
+ $ERROR('#3: 33 === 33');
+}
+
+//CHECK#4
+if (44 !== 44) {
+ $ERROR('#4: 44 === 44');
+}
+
+//CHECK#5
+if (55 !== 55) {
+ $ERROR('#5: 55 === 55');
+}
+
+//CHECK#6
+if (66 !== 66) {
+ $ERROR('#6: 66 === 66');
+}
+
+//CHECK#7
+if (77 !== 77) {
+ $ERROR('#7: 77 === 77');
+}
+
+//CHECK#8
+if (88 !== 88) {
+ $ERROR('#8: 88 === 88');
+}
+
+//CHECK#9
+if (99 !== 99) {
+ $ERROR('#9: 99 === 99');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T1.js
new file mode 100644
index 000000000..50a042d2c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T1.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A1.2_T1.js
+ * @description ExponentPart :: e DecimalDigits
+ */
+
+//CHECK#0
+if (0e1 !== 0) {
+ $ERROR('#0: 0e1 === 0');
+}
+
+//CHECK#1
+if (1e1 !== 10) {
+ $ERROR('#1: 1e1 === 10');
+}
+
+//CHECK#2
+if (2e1 !== 20) {
+ $ERROR('#2: 2e1 === 20');
+}
+
+//CHECK#3
+if (3e1 !== 30) {
+ $ERROR('#3: 3e1 === 30');
+}
+
+//CHECK#4
+if (4e1 !== 40) {
+ $ERROR('#4: 4e1 === 40');
+}
+
+//CHECK#5
+if (5e1 !== 50) {
+ $ERROR('#5: 5e1 === 50');
+}
+
+//CHECK#6
+if (6e1 !== 60) {
+ $ERROR('#6: 6e1 === 60');
+}
+
+//CHECK#7
+if (7e1 !== 70) {
+ $ERROR('#7: 7e1 === 70');
+}
+
+//CHECK#8
+if (8e1 !== 80) {
+ $ERROR('#8: 8e1 === 80');
+}
+
+//CHECK#9
+if (9e1 !== 90) {
+ $ERROR('#9: 9e1 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T2.js
new file mode 100644
index 000000000..f2398a460
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T2.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A1.2_T2.js
+ * @description ExponentPart :: E DecimalDigits
+ */
+
+//CHECK#0
+if (0E1 !== 0) {
+ $ERROR('#0: 0E1 === 0');
+}
+
+//CHECK#1
+if (1E1 !== 10) {
+ $ERROR('#1: 1E1 === 1');
+}
+
+//CHECK#2
+if (2E1 !== 20) {
+ $ERROR('#2: 2E1 === 20');
+}
+
+//CHECK#3
+if (3E1 !== 30) {
+ $ERROR('#3: 3E1 === 30');
+}
+
+//CHECK#4
+if (4E1 !== 40) {
+ $ERROR('#4: 4E1 === 40');
+}
+
+//CHECK#5
+if (5E1 !== 50) {
+ $ERROR('#5: 5E1 === 50');
+}
+
+//CHECK#6
+if (6E1 !== 60) {
+ $ERROR('#6: 6E1 === 60');
+}
+
+//CHECK#7
+if (7E1 !== 70) {
+ $ERROR('#7: 7E1 === 70');
+}
+
+//CHECK#8
+if (8E1 !== 80) {
+ $ERROR('#8: 8E1 === 80');
+}
+
+//CHECK#9
+if (9E1 !== 90) {
+ $ERROR('#9: 9E1 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T3.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T3.js
new file mode 100644
index 000000000..352745f8a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T3.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A1.2_T3.js
+ * @description ExponentPart :: e -DecimalDigits
+ */
+
+//CHECK#0
+if (0e-1 !== 0) {
+ $ERROR('#0: 0e-1 === 0');
+}
+
+//CHECK#1
+if (1e-1 !== 0.1) {
+ $ERROR('#1: 1e-1 === 0.1');
+}
+
+//CHECK#2
+if (2e-1 !== 0.2) {
+ $ERROR('#2: 2e-1 === 0.2');
+}
+
+//CHECK#3
+if (3e-1 !== 0.3) {
+ $ERROR('#3: 3e-1 === 0.3');
+}
+
+//CHECK#4
+if (4e-1 !== 0.4) {
+ $ERROR('#4: 4e-1 === 0.4');
+}
+
+//CHECK#5
+if (5e-1 !== 0.5) {
+ $ERROR('#5: 5e-1 === 0.5');
+}
+
+//CHECK#6
+if (6e-1 !== 0.6) {
+ $ERROR('#6: 6e-1 === 0.6');
+}
+
+//CHECK#7
+if (7e-1 !== 0.7) {
+ $ERROR('#7: 7e-1 === 0.7');
+}
+
+//CHECK#8
+if (8e-1 !== 0.8) {
+ $ERROR('#8: 8e-1 === 0.8');
+}
+
+//CHECK#9
+if (9e-1 !== 0.9) {
+ $ERROR('#9: 9e-1 === 0.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T4.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T4.js
new file mode 100644
index 000000000..b0f95210f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T4.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A1.2_T4.js
+ * @description ExponentPart :: E -DecimalDigits
+ */
+
+//CHECK#0
+if (0E-1 !== 0) {
+ $ERROR('#0: 0E-1 === 0');
+}
+
+//CHECK#1
+if (1E-1 !== 0.1) {
+ $ERROR('#1: 1E-1 === 0.1');
+}
+
+//CHECK#2
+if (2E-1 !== 0.2) {
+ $ERROR('#2: 2E-1 === 0.2');
+}
+
+//CHECK#3
+if (3E-1 !== 0.3) {
+ $ERROR('#3: 3E-1 === 0.3');
+}
+
+//CHECK#4
+if (4E-1 !== 0.4) {
+ $ERROR('#4: 4E-1 === 0.4');
+}
+
+//CHECK#5
+if (5E-1 !== 0.5) {
+ $ERROR('#5: 5E-1 === 0.5');
+}
+
+//CHECK#6
+if (6E-1 !== 0.6) {
+ $ERROR('#6: 6E-1 === 0.6');
+}
+
+//CHECK#7
+if (7E-1 !== 0.7) {
+ $ERROR('#7: 7E-1 === 0.7');
+}
+
+//CHECK#8
+if (8E-1 !== 0.8) {
+ $ERROR('#8: 8E-1 === 0.8');
+}
+
+//CHECK#9
+if (9E-1 !== 0.9) {
+ $ERROR('#9: 9E-1 === 0.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T5.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T5.js
new file mode 100644
index 000000000..87c79f63d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T5.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A1.2_T5.js
+ * @description ExponentPart :: e +DecimalDigits
+ */
+
+//CHECK#0
+if (0e+1 !== 0) {
+ $ERROR('#0: 0e+1 === 0');
+}
+
+//CHe+CK#1
+if (1e+1 !== 10) {
+ $ERROR('#1: 1e+1 === 10');
+}
+
+//CHe+CK#2
+if (2e+1 !== 20) {
+ $ERROR('#2: 2e+1 === 20');
+}
+
+//CHe+CK#3
+if (3e+1 !== 30) {
+ $ERROR('#3: 3e+1 === 30');
+}
+
+//CHe+CK#4
+if (4e+1 !== 40) {
+ $ERROR('#4: 4e+1 === 40');
+}
+
+//CHe+CK#5
+if (5e+1 !== 50) {
+ $ERROR('#5: 5e+1 === 50');
+}
+
+//CHe+CK#6
+if (6e+1 !== 60) {
+ $ERROR('#6: 6e+1 === 60');
+}
+
+//CHe+CK#7
+if (7e+1 !== 70) {
+ $ERROR('#7: 7e+1 === 70');
+}
+
+//CHe+CK#8
+if (8e+1 !== 80) {
+ $ERROR('#8: 8e+1 === 80');
+}
+
+//CHe+CK#9
+if (9e+1 !== 90) {
+ $ERROR('#9: 9e+1 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T6.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T6.js
new file mode 100644
index 000000000..bdfc65d33
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T6.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A1.2_T6.js
+ * @description ExponentPart :: E +DecimalDigits
+ */
+
+//CHECK#0
+if (0E+1 !== 0) {
+ $ERROR('#0: 0E+1 === 0');
+}
+
+//CHE+CK#1
+if (1E+1 !== 10) {
+ $ERROR('#1: 1E+1 === 10');
+}
+
+//CHE+CK#2
+if (2E+1 !== 20) {
+ $ERROR('#2: 2E+1 === 20');
+}
+
+//CHE+CK#3
+if (3E+1 !== 30) {
+ $ERROR('#3: 3E+1 === 30');
+}
+
+//CHE+CK#4
+if (4E+1 !== 40) {
+ $ERROR('#4: 4E+1 === 40');
+}
+
+//CHE+CK#5
+if (5E+1 !== 50) {
+ $ERROR('#5: 5E+1 === 50');
+}
+
+//CHE+CK#6
+if (6E+1 !== 60) {
+ $ERROR('#6: 6E+1 === 60');
+}
+
+//CHE+CK#7
+if (7E+1 !== 70) {
+ $ERROR('#7: 7E+1 === 70');
+}
+
+//CHE+CK#8
+if (8E+1 !== 80) {
+ $ERROR('#8: 8E+1 === 80');
+}
+
+//CHE+CK#9
+if (9E+1 !== 90) {
+ $ERROR('#9: 9E+1 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T7.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T7.js
new file mode 100644
index 000000000..d636e7e6b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T7.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A1.2_T7.js
+ * @description ExponentPart :: e 0
+ */
+
+//CHECK#0
+if (0e0 !== 0) {
+ $ERROR('#0: 0e0 === 0');
+}
+
+//CHECK#1
+if (1e0 !== 1) {
+ $ERROR('#1: 1e0 === 1');
+}
+
+//CHECK#2
+if (2e0 !== 2) {
+ $ERROR('#2: 2e0 === 2');
+}
+
+//CHECK#3
+if (3e0 !== 3) {
+ $ERROR('#3: 3e0 === 3');
+}
+
+//CHECK#4
+if (4e0 !== 4) {
+ $ERROR('#4: 4e0 === 4');
+}
+
+//CHECK#5
+if (5e0 !== 5) {
+ $ERROR('#5: 5e0 === 5');
+}
+
+//CHECK#6
+if (6e0 !== 6) {
+ $ERROR('#6: 6e0 === 6');
+}
+
+//CHECK#7
+if (7e0 !== 7) {
+ $ERROR('#7: 7e0 === 7');
+}
+
+//CHECK#8
+if (8e0 !== 8) {
+ $ERROR('#8: 8e0 === 8');
+}
+
+//CHECK#9
+if (9e0 !== 9) {
+ $ERROR('#9: 9e0 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T8.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T8.js
new file mode 100644
index 000000000..c45e4353d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A1.2_T8.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A1.2_T8.js
+ * @description ExponentPart :: E 0
+ */
+
+//CHECK#0
+if (0E0 !== 0) {
+ $ERROR('#0: 0E0 === 0');
+}
+
+//CHECK#1
+if (1E0 !== 1) {
+ $ERROR('#1: 1E0 === 1');
+}
+
+//CHECK#2
+if (2E0 !== 2) {
+ $ERROR('#2: 2E0 === 2');
+}
+
+//CHECK#3
+if (3E0 !== 3) {
+ $ERROR('#3: 3E0 === 3');
+}
+
+//CHECK#4
+if (4E0 !== 4) {
+ $ERROR('#4: 4E0 === 4');
+}
+
+//CHECK#5
+if (5E0 !== 5) {
+ $ERROR('#5: 5E0 === 5');
+}
+
+//CHECK#6
+if (6E0 !== 6) {
+ $ERROR('#6: 6E0 === 6');
+}
+
+//CHECK#7
+if (7E0 !== 7) {
+ $ERROR('#7: 7E0 === 7');
+}
+
+//CHECK#8
+if (8E0 !== 8) {
+ $ERROR('#8: 8E0 === 8');
+}
+
+//CHECK#9
+if (9E0 !== 9) {
+ $ERROR('#9: 9E0 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T1.js
new file mode 100644
index 000000000..571cfe65e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T1.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: .DecimalDigits
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A2.1_T1.js
+ * @description Use .DecimalDigit
+ */
+
+//CHECK#0
+if (.0 !== 0.0) {
+ $ERROR('#0: .0 === 0.0');
+}
+
+//CHECK#1
+if (.1 !== 0.1) {
+ $ERROR('#1: .1 === 0.1');
+}
+
+//CHECK#2
+if (.2 !== 0.2) {
+ $ERROR('#2: .2 === 0.2');
+}
+
+//CHECK#3
+if (.3 !== 0.3) {
+ $ERROR('#3: .3 === 0.3');
+}
+
+//CHECK#4
+if (.4 !== 0.4) {
+ $ERROR('#4: .4 === 0.4');
+}
+
+//CHECK#5
+if (.5 !== 0.5) {
+ $ERROR('#5: .5 === 0.5');
+}
+
+//CHECK#6
+if (.6 !== 0.6) {
+ $ERROR('#6: .6 === 0.6');
+}
+
+//CHECK#7
+if (.7 !== 0.7) {
+ $ERROR('#7: .7 === 0.7');
+}
+
+//CHECK#8
+if (.8 !== 0.8) {
+ $ERROR('#8: .8 === 0.8');
+}
+
+//CHECK#9
+if (.9 !== 0.9) {
+ $ERROR('#9: .9 === 0.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T2.js
new file mode 100644
index 000000000..88ed6fc02
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T2.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: .DecimalDigits
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A2.1_T2.js
+ * @description Use .DecimalDigits
+ */
+
+//CHECK#0
+if (.00 !== 0.00) {
+ $ERROR('#0: .00 === 0.00');
+}
+
+//CHECK#1
+if (.11 !== 0.11) {
+ $ERROR('#1: .11 === 0.11');
+}
+
+//CHECK#2
+if (.22 !== 0.22) {
+ $ERROR('#2: .22 === 0.22');
+}
+
+//CHECK#3
+if (.33 !== 0.33) {
+ $ERROR('#3: .33 === 0.33');
+}
+
+//CHECK#4
+if (.44 !== 0.44) {
+ $ERROR('#4: .44 === 0.44');
+}
+
+//CHECK#5
+if (.55 !== 0.55) {
+ $ERROR('#5: .55 === 0.55');
+}
+
+//CHECK#6
+if (.66 !== 0.66) {
+ $ERROR('#6: .66 === 0.66');
+}
+
+//CHECK#7
+if (.77 !== 0.77) {
+ $ERROR('#7: .77 === 0.77');
+}
+
+//CHECK#8
+if (.88 !== 0.88) {
+ $ERROR('#8: .88 === 0.88');
+}
+
+//CHECK#9
+if (.99 !== 0.99) {
+ $ERROR('#9: .99 === 0.99');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T3.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T3.js
new file mode 100644
index 000000000..2b5d47bd1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.1_T3.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: .DecimalDigits
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A2.1_T3.js
+ * @description Use .DecimalDigits that have at the end zeros
+ */
+
+//CHECK#0
+if (.00 !== 0.0) {
+ $ERROR('#0: .0 === 0.0');
+}
+
+//CHECK#1
+if (.10 !== 0.1) {
+ $ERROR('#1: .1 === 0.1');
+}
+
+//CHECK#2
+if (.20 !== 0.2) {
+ $ERROR('#2: .2 === 0.2');
+}
+
+//CHECK#3
+if (.30 !== 0.3) {
+ $ERROR('#3: .3 === 0.3');
+}
+
+//CHECK#4
+if (.40 !== 0.4) {
+ $ERROR('#4: .4 === 0.4');
+}
+
+//CHECK#5
+if (.50 !== 0.5) {
+ $ERROR('#5: .5 === 0.5');
+}
+
+//CHECK#6
+if (.60 !== 0.6) {
+ $ERROR('#6: .6 === 0.6');
+}
+
+//CHECK#7
+if (.70 !== 0.7) {
+ $ERROR('#7: .7 === 0.7');
+}
+
+//CHECK#8
+if (.80 !== 0.8) {
+ $ERROR('#8: .8 === 0.8');
+}
+
+//CHECK#9
+if (.90 !== 0.9) {
+ $ERROR('#9: .9 === 0.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T1.js
new file mode 100644
index 000000000..bd80eb9d7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T1.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: .DecimalDigits ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A2.2_T1.js
+ * @description ExponentPart :: e DecimalDigits
+ */
+
+//CHECK#0
+if (.0e1 !== 0) {
+ $ERROR('#0: .0e1 === 0');
+}
+
+//CHECK#1
+if (.1e1 !== 1) {
+ $ERROR('#1: .1e1 === 1');
+}
+
+//CHECK#2
+if (.2e1 !== 2) {
+ $ERROR('#2: .2e1 === 2');
+}
+
+//CHECK#3
+if (.3e1 !== 3) {
+ $ERROR('#3: .3e1 === 3');
+}
+
+//CHECK#4
+if (.4e1 !== 4) {
+ $ERROR('#4: .4e1 === 4');
+}
+
+//CHECK#5
+if (.5e1 !== 5) {
+ $ERROR('#5: .5e1 === 5');
+}
+
+//CHECK#6
+if (.6e1 !== 6) {
+ $ERROR('#6: .6e1 === 6');
+}
+
+//CHECK#7
+if (.7e1 !== 7) {
+ $ERROR('#7: .7e1 === 7');
+}
+
+//CHECK#8
+if (.8e1 !== 8) {
+ $ERROR('#8: .8e1 === 8');
+}
+
+//CHECK#9
+if (.9e1 !== 9) {
+ $ERROR('#9: .9e1 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T2.js
new file mode 100644
index 000000000..0e6db7925
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T2.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: .DecimalDigits ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A2.2_T2.js
+ * @description ExponentPart :: E DecimalDigits
+ */
+
+//CHECK#0
+if (.0E1 !== 0) {
+ $ERROR('#0: .0E1 === 0');
+}
+
+//CHECK#1
+if (.1E1 !== 1) {
+ $ERROR('#1: .1E1 === 1');
+}
+
+//CHECK#2
+if (.2E1 !== 2) {
+ $ERROR('#2: .2E1 === 2');
+}
+
+//CHECK#3
+if (.3E1 !== 3) {
+ $ERROR('#3: .3E1 === 3');
+}
+
+//CHECK#4
+if (.4E1 !== 4) {
+ $ERROR('#4: .4E1 === 4');
+}
+
+//CHECK#5
+if (.5E1 !== 5) {
+ $ERROR('#5: .5E1 === 5');
+}
+
+//CHECK#6
+if (.6E1 !== 6) {
+ $ERROR('#6: .6E1 === 6');
+}
+
+//CHECK#7
+if (.7E1 !== 7) {
+ $ERROR('#7: .7E1 === 7');
+}
+
+//CHECK#8
+if (.8E1 !== 8) {
+ $ERROR('#8: .8E1 === 8');
+}
+
+//CHECK#9
+if (.9E1 !== 9) {
+ $ERROR('#9: .9E1 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T3.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T3.js
new file mode 100644
index 000000000..513868760
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T3.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: .DecimalDigits ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A2.2_T3.js
+ * @description ExponentPart :: e +DecimalDigits
+ */
+
+//CHECK#0
+if (.0e-1 !== 0) {
+ $ERROR('#0: .0e-1 === 0');
+}
+
+//CHECK#1
+if (.1e-1 !== 0.01) {
+ $ERROR('#1: .1e-1 === 0.01');
+}
+
+//CHECK#2
+if (.2e-1 !== 0.02) {
+ $ERROR('#2: .2e-1 === 0.02');
+}
+
+//CHECK#3
+if (.3e-1 !== 0.03) {
+ $ERROR('#3: .3e-1 === 0.03');
+}
+
+//CHECK#4
+if (.4e-1 !== 0.04) {
+ $ERROR('#4: .4e-1 === 0.04');
+}
+
+//CHECK#5
+if (.5e-1 !== 0.05) {
+ $ERROR('#5: .5e-1 === 0.05');
+}
+
+//CHECK#6
+if (.6e-1 !== 0.06) {
+ $ERROR('#6: .6e-1 === 0.06');
+}
+
+//CHECK#7
+if (.7e-1 !== 0.07) {
+ $ERROR('#7: .7e-1 === 0.07');
+}
+
+//CHECK#8
+if (.8e-1 !== 0.08) {
+ $ERROR('#8: .8e-1 === 0.08');
+}
+
+//CHECK#9
+if (.9e-1 !== 0.09) {
+ $ERROR('#9: .9e-1 === 0.09');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T4.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T4.js
new file mode 100644
index 000000000..88ddf9858
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T4.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: .DecimalDigits ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A2.2_T4.js
+ * @description ExponentPart :: E +DecimalDigits
+ */
+
+//CHECK#0
+if (.0E-1 !== 0) {
+ $ERROR('#0: .0E-1 === 0');
+}
+
+//CHECK#1
+if (.1E-1 !== 0.01) {
+ $ERROR('#1: .1E-1 === 0.01');
+}
+
+//CHECK#2
+if (.2E-1 !== 0.02) {
+ $ERROR('#2: .2E-1 === 0.02');
+}
+
+//CHECK#3
+if (.3E-1 !== 0.03) {
+ $ERROR('#3: .3E-1 === 0.03');
+}
+
+//CHECK#4
+if (.4E-1 !== 0.04) {
+ $ERROR('#4: .4E-1 === 0.04');
+}
+
+//CHECK#5
+if (.5E-1 !== 0.05) {
+ $ERROR('#5: .5E-1 === 0.05');
+}
+
+//CHECK#6
+if (.6E-1 !== 0.06) {
+ $ERROR('#6: .6E-1 === 0.06');
+}
+
+//CHECK#7
+if (.7E-1 !== 0.07) {
+ $ERROR('#7: .7E-1 === 0.07');
+}
+
+//CHECK#8
+if (.8E-1 !== 0.08) {
+ $ERROR('#8: .8E-1 === 0.08');
+}
+
+//CHECK#9
+if (.9E-1 !== 0.09) {
+ $ERROR('#9: .9E-1 === 0.09');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T5.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T5.js
new file mode 100644
index 000000000..881511a10
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T5.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: .DecimalDigits ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A2.2_T5.js
+ * @description ExponentPart :: e +DecimalDigits
+ */
+
+//CHECK#0
+if (.0e+1 !== 0) {
+ $ERROR('#0: .0e+1 === 0');
+}
+
+//CHECK#1
+if (.1e+1 !== 1) {
+ $ERROR('#1: .1e+1 === 1');
+}
+
+//CHECK#2
+if (.2e+1 !== 2) {
+ $ERROR('#2: .2e+1 === 2');
+}
+
+//CHECK#3
+if (.3e+1 !== 3) {
+ $ERROR('#3: .3e+1 === 3');
+}
+
+//CHECK#4
+if (.4e+1 !== 4) {
+ $ERROR('#4: .4e+1 === 4');
+}
+
+//CHECK#5
+if (.5e+1 !== 5) {
+ $ERROR('#5: .5e+1 === 5');
+}
+
+//CHECK#6
+if (.6e+1 !== 6) {
+ $ERROR('#6: .6e+1 === 6');
+}
+
+//CHECK#7
+if (.7e+1 !== 7) {
+ $ERROR('#7: .7e+1 === 7');
+}
+
+//CHECK#8
+if (.8e+1 !== 8) {
+ $ERROR('#8: .8e+1 === 8');
+}
+
+//CHECK#9
+if (.9e+1 !== 9) {
+ $ERROR('#9: .9e+1 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T6.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T6.js
new file mode 100644
index 000000000..8b206eee7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T6.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: .DecimalDigits ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A2.2_T6.js
+ * @description ExponentPart :: E +DecimalDigits
+ */
+
+//CHECK#0
+if (.0E+1 !== 0) {
+ $ERROR('#0: .0E+1 === 0');
+}
+
+//CHECK#1
+if (.1E+1 !== 1) {
+ $ERROR('#1: .1E+1 === 1');
+}
+
+//CHECK#2
+if (.2E+1 !== 2) {
+ $ERROR('#2: .2E+1 === 2');
+}
+
+//CHECK#3
+if (.3E+1 !== 3) {
+ $ERROR('#3: .3E+1 === 3');
+}
+
+//CHECK#4
+if (.4E+1 !== 4) {
+ $ERROR('#4: .4E+1 === 4');
+}
+
+//CHECK#5
+if (.5E+1 !== 5) {
+ $ERROR('#5: .5E+1 === 5');
+}
+
+//CHECK#6
+if (.6E+1 !== 6) {
+ $ERROR('#6: .6E+1 === 6');
+}
+
+//CHECK#7
+if (.7E+1 !== 7) {
+ $ERROR('#7: .7E+1 === 7');
+}
+
+//CHECK#8
+if (.8E+1 !== 8) {
+ $ERROR('#8: .8E+1 === 8');
+}
+
+//CHECK#9
+if (.9E+1 !== 9) {
+ $ERROR('#9: .9E+1 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T7.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T7.js
new file mode 100644
index 000000000..a3701e00c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T7.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: .DecimalDigits ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A2.2_T7.js
+ * @description ExponentPart :: e 0
+ */
+
+//CHECK#0
+if (.0e0 !== 0.0) {
+ $ERROR('#0: .0e0 === 0.0');
+}
+
+//CHECK#1
+if (.1e0 !== 0.1) {
+ $ERROR('#1: .1e0 === 0.1');
+}
+
+//CHECK#2
+if (.2e0 !== 0.2) {
+ $ERROR('#2: .2e0 === 0.2');
+}
+
+//CHECK#3
+if (.3e0 !== 0.3) {
+ $ERROR('#3: .3e0 === 0.3');
+}
+
+//CHECK#4
+if (.4e0 !== 0.4) {
+ $ERROR('#4: .4e0 === 0.4');
+}
+
+//CHECK#5
+if (.5e0 !== 0.5) {
+ $ERROR('#5: .5e0 === 0.5');
+}
+
+//CHECK#6
+if (.6e0 !== 0.6) {
+ $ERROR('#6: .6e0 === 0.6');
+}
+
+//CHECK#7
+if (.7e0 !== 0.7) {
+ $ERROR('#7: .7e0 === 0.7');
+}
+
+//CHECK#8
+if (.8e0 !== 0.8) {
+ $ERROR('#8: .8e0 === 0.8');
+}
+
+//CHECK#9
+if (.9e0 !== 0.9) {
+ $ERROR('#9: .9e0 === 0.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T8.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T8.js
new file mode 100644
index 000000000..d8bca29e1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A2.2_T8.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: .DecimalDigits ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A2.2_T8.js
+ * @description ExponentPart :: E 0
+ */
+
+//CHECK#0
+if (.0E0 !== 0.0) {
+ $ERROR('#0: .0E0 === 0.0');
+}
+
+//CHECK#1
+if (.1E0 !== 0.1) {
+ $ERROR('#1: .1E0 === 0.1');
+}
+
+//CHECK#2
+if (.2E0 !== 0.2) {
+ $ERROR('#2: .2E0 === 0.2');
+}
+
+//CHECK#3
+if (.3E0 !== 0.3) {
+ $ERROR('#3: .3E0 === 0.3');
+}
+
+//CHECK#4
+if (.4E0 !== 0.4) {
+ $ERROR('#4: .4E0 === 0.4');
+}
+
+//CHECK#5
+if (.5E0 !== 0.5) {
+ $ERROR('#5: .5E0 === 0.5');
+}
+
+//CHECK#6
+if (.6E0 !== 0.6) {
+ $ERROR('#6: .6E0 === 0.6');
+}
+
+//CHECK#7
+if (.7E0 !== 0.7) {
+ $ERROR('#7: .7E0 === 0.7');
+}
+
+//CHECK#8
+if (.8E0 !== 0.8) {
+ $ERROR('#8: .8E0 === 0.8');
+}
+
+//CHECK#9
+if (.9E0 !== 0.9) {
+ $ERROR('#9: .9E0 === 0.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.1_T1.js
new file mode 100644
index 000000000..0e34b120b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.1_T1.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral.
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.1_T1.js
+ * @description DecimalIntegerLiteral :: 0, NoNZeroDigit
+ */
+
+//CHECK#0
+if (0. !== 0) {
+ $ERROR('#0: 0. === 0');
+}
+
+//CHECK#1
+if (1. !== 1) {
+ $ERROR('#1: 1. === 1');
+}
+
+//CHECK#2
+if (2. !== 2) {
+ $ERROR('#2: 2. === 2');
+}
+
+//CHECK#3
+if (3. !== 3) {
+ $ERROR('#3: 3. === 3');
+}
+
+//CHECK#4
+if (4. !== 4) {
+ $ERROR('#4: 4. === 4');
+}
+
+//CHECK#5
+if (5. !== 5) {
+ $ERROR('#5: 5. === 5');
+}
+
+//CHECK#6
+if (6. !== 6) {
+ $ERROR('#6: 6. === 6');
+}
+
+//CHECK#7
+if (7. !== 7) {
+ $ERROR('#7: 7. === 7');
+}
+
+//CHECK#8
+if (8. !== 8) {
+ $ERROR('#8: 8. === 8');
+}
+
+//CHECK#9
+if (9. !== 9) {
+ $ERROR('#9: 9. === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.1_T2.js
new file mode 100644
index 000000000..6dcdd78e3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.1_T2.js
@@ -0,0 +1,55 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral.
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.1_T2.js
+ * @description DecimalIntegerLiteral :: NoNZeroDigit DecimalDigigts
+ */
+
+//CHECK#1
+if (11. !== 11) {
+ $ERROR('#1: 11. === 11');
+}
+
+//CHECK#2
+if (22. !== 22) {
+ $ERROR('#2: 22. === 22');
+}
+
+//CHECK#3
+if (33. !== 33) {
+ $ERROR('#3: 33. === 33');
+}
+
+//CHECK#4
+if (44. !== 44) {
+ $ERROR('#4: 44. === 44');
+}
+
+//CHECK#5
+if (55. !== 55) {
+ $ERROR('#5: 55. === 55');
+}
+
+//CHECK#6
+if (66. !== 66) {
+ $ERROR('#6: 66. === 66');
+}
+
+//CHECK#7
+if (77. !== 77) {
+ $ERROR('#7: 77. === 77');
+}
+
+//CHECK#8
+if (88. !== 88) {
+ $ERROR('#8: 88. === 88');
+}
+
+//CHECK#9
+if (99. !== 99) {
+ $ERROR('#9: 99. === 99');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T1.js
new file mode 100644
index 000000000..5c0a5ffa7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T1.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigits
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.2_T1.js
+ * @description After DecimalIntegerLiteral. used ZeroDigit
+ */
+
+//CHECK#0
+if (0.0 !== 0) {
+ $ERROR('#0: 0.0 === 0');
+}
+
+//CHECK#1
+if (1.0 !== 1) {
+ $ERROR('#1: 1.0 === 1');
+}
+
+//CHECK#2
+if (2.0 !== 2) {
+ $ERROR('#2: 2.0 === 2');
+}
+
+//CHECK#3
+if (3.0 !== 3) {
+ $ERROR('#3: 3.0 === 3');
+}
+
+//CHECK#4
+if (4.0 !== 4) {
+ $ERROR('#4: 4.0 === 4');
+}
+
+//CHECK#5
+if (5.0 !== 5) {
+ $ERROR('#5: 5.0 === 5');
+}
+
+//CHECK#6
+if (6.0 !== 6) {
+ $ERROR('#6: 6.0 === 6');
+}
+
+//CHECK#7
+if (7.0 !== 7) {
+ $ERROR('#7: 7.0 === 7');
+}
+
+//CHECK#8
+if (8.0 !== 8) {
+ $ERROR('#8: 8.0 === 8');
+}
+
+//CHECK#9
+if (9.0 !== 9) {
+ $ERROR('#9: 9.0 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T2.js
new file mode 100644
index 000000000..110c931e5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T2.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigits
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.2_T2.js
+ * @description After DecimalIntegerLiteral. used ZeroDigits
+ */
+
+//CHECK#0
+if (0.00 !== 0) {
+ $ERROR('#0: 0.00 === 0');
+}
+
+//CHECK#1
+if (1.00 !== 1) {
+ $ERROR('#1: 1.00 === 1');
+}
+
+//CHECK#2
+if (2.00 !== 2) {
+ $ERROR('#2: 2.00 === 2');
+}
+
+//CHECK#3
+if (3.00 !== 3) {
+ $ERROR('#3: 3.00 === 3');
+}
+
+//CHECK#4
+if (4.00 !== 4) {
+ $ERROR('#4: 4.00 === 4');
+}
+
+//CHECK#5
+if (5.00 !== 5) {
+ $ERROR('#5: 5.00 === 5');
+}
+
+//CHECK#6
+if (6.00 !== 6) {
+ $ERROR('#6: 6.00 === 6');
+}
+
+//CHECK#7
+if (7.00 !== 7) {
+ $ERROR('#7: 7.00 === 7');
+}
+
+//CHECK#8
+if (8.00 !== 8) {
+ $ERROR('#8: 8.00 === 8');
+}
+
+//CHECK#9
+if (9.00 !== 9) {
+ $ERROR('#9: 9.00 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T3.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T3.js
new file mode 100644
index 000000000..fe293b95b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.2_T3.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigits
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.2_T3.js
+ * @description After DecimalIntegerLiteral. used NoNZeroDigit
+ */
+
+//CHECK#0
+if (0.0 !== 0.0) {
+ $ERROR('#0: 0.0 === 0.0');
+}
+
+//CHECK#1
+if (1.1 !== 1.1) {
+ $ERROR('#1: 1.1 === 1.1');
+}
+
+//CHECK#2
+if (2.2 !== 2.2) {
+ $ERROR('#2: 2.2 === 2.2');
+}
+
+//CHECK#3
+if (3.3 !== 3.3) {
+ $ERROR('#3: 3.3 === 3.3');
+}
+
+//CHECK#4
+if (4.4 !== 4.4) {
+ $ERROR('#4: 4.4 === 4.4');
+}
+
+//CHECK#5
+if (5.5 !== 5.5) {
+ $ERROR('#5: 5.5 === 5.5');
+}
+
+//CHECK#6
+if (6.6 !== 6.6) {
+ $ERROR('#6: 6.6 === 6.6');
+}
+
+//CHECK#7
+if (7.7 !== 7.7) {
+ $ERROR('#7: 7.7 === 7.7');
+}
+
+//CHECK#8
+if (8.8 !== 8.8) {
+ $ERROR('#8: 8..8 === 8.8');
+}
+
+//CHECK#9
+if (9.9 !== 9.9) {
+ $ERROR('#9: 9.9 === 9.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T1.js
new file mode 100644
index 000000000..e0a6edba5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T1.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.3_T1.js
+ * @description ExponentPart :: e DecimalDigits
+ */
+
+//CHECK#0
+if (0.e1 !== 0) {
+ $ERROR('#0: 0.e1 === 0');
+}
+
+//CHECK#1
+if (1.e1 !== 10) {
+ $ERROR('#1: 1.e1 === 10');
+}
+
+//CHECK#2
+if (2.e1 !== 20) {
+ $ERROR('#2: 2.e1 === 20');
+}
+
+//CHECK#3
+if (3.e1 !== 30) {
+ $ERROR('#3: 3.e1 === 30');
+}
+
+//CHECK#4
+if (4.e1 !== 40) {
+ $ERROR('#4: 4.e1 === 40');
+}
+
+//CHECK#5
+if (5.e1 !== 50) {
+ $ERROR('#5: 5.e1 === 50');
+}
+
+//CHECK#6
+if (6.e1 !== 60) {
+ $ERROR('#6: 6.e1 === 60');
+}
+
+//CHECK#7
+if (7.e1 !== 70) {
+ $ERROR('#7: 7.e1 === 70');
+}
+
+//CHECK#8
+if (8.e1 !== 80) {
+ $ERROR('#8: 8.e1 === 80');
+}
+
+//CHECK#9
+if (9.e1 !== 90) {
+ $ERROR('#9: 9.e1 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T2.js
new file mode 100644
index 000000000..034d2c548
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T2.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.3_T2.js
+ * @description ExponentPart :: E DecimalDigits
+ */
+
+//CHECK#0
+if (0.E1 !== 0) {
+ $ERROR('#0: 0.E1 === 0');
+}
+
+//CHECK#1
+if (1.E1 !== 10) {
+ $ERROR('#1: 1.E1 === 10');
+}
+
+//CHECK#2
+if (2.E1 !== 20) {
+ $ERROR('#2: 2.E1 === 20');
+}
+
+//CHECK#3
+if (3.E1 !== 30) {
+ $ERROR('#3: 3.E1 === 30');
+}
+
+//CHECK#4
+if (4.E1 !== 40) {
+ $ERROR('#4: 4.E1 === 40');
+}
+
+//CHECK#5
+if (5.E1 !== 50) {
+ $ERROR('#5: 5.E1 === 50');
+}
+
+//CHECK#6
+if (6.E1 !== 60) {
+ $ERROR('#6: 6.E1 === 60');
+}
+
+//CHECK#7
+if (7.E1 !== 70) {
+ $ERROR('#7: 7.E1 === 70');
+}
+
+//CHECK#8
+if (8.E1 !== 80) {
+ $ERROR('#8: 8.E1 === 80');
+}
+
+//CHECK#9
+if (9.E1 !== 90) {
+ $ERROR('#9: 9.E1 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T3.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T3.js
new file mode 100644
index 000000000..a60c83d58
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T3.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.3_T3.js
+ * @description ExponentPart :: e -DecimalDigits
+ */
+
+//CHECK#0
+if (0.e-1 !== 0) {
+ $ERROR('#0: 0.e-1 === 0');
+}
+
+//CHECK#1
+if (1.e-1 !== 0.1) {
+ $ERROR('#1: 1.e-1 === 0.1');
+}
+
+//CHECK#2
+if (2.e-1 !== 0.2) {
+ $ERROR('#2: 2.e-1 === 0.2');
+}
+
+//CHECK#3
+if (3.e-1 !== 0.3) {
+ $ERROR('#3: 3.e-1 === 0.3');
+}
+
+//CHECK#4
+if (4.e-1 !== 0.4) {
+ $ERROR('#4: 4.e-1 === 0.4');
+}
+
+//CHECK#5
+if (5.e-1 !== 0.5) {
+ $ERROR('#5: 5.e-1 === 0.5');
+}
+
+//CHECK#6
+if (6.e-1 !== 0.6) {
+ $ERROR('#6: 6.e-1 === 0.6');
+}
+
+//CHECK#7
+if (7.e-1 !== 0.7) {
+ $ERROR('#7: 7.e-1 === 0.7');
+}
+
+//CHECK#8
+if (8.e-1 !== 0.8) {
+ $ERROR('#8: 8.e-1 === 0.8');
+}
+
+//CHECK#9
+if (9.e-1 !== 0.9) {
+ $ERROR('#9: 9.e-1 === 0.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T4.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T4.js
new file mode 100644
index 000000000..9dc5be7a2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T4.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.3_T4.js
+ * @description ExponentPart :: E -DecimalDigits
+ */
+
+//CHECK#0
+if (0.E-1 !== 0) {
+ $ERROR('#0: 0.E-1 === 0');
+}
+
+//CHECK#1
+if (1.E-1 !== 0.1) {
+ $ERROR('#1: 1.E-1 === 0.1');
+}
+
+//CHECK#2
+if (2.E-1 !== 0.2) {
+ $ERROR('#2: 2.E-1 === 0.2');
+}
+
+//CHECK#3
+if (3.E-1 !== 0.3) {
+ $ERROR('#3: 3.E-1 === 0.3');
+}
+
+//CHECK#4
+if (4.E-1 !== 0.4) {
+ $ERROR('#4: 4.E-1 === 0.4');
+}
+
+//CHECK#5
+if (5.E-1 !== 0.5) {
+ $ERROR('#5: 5.E-1 === 0.5');
+}
+
+//CHECK#6
+if (6.E-1 !== 0.6) {
+ $ERROR('#6: 6.E-1 === 0.6');
+}
+
+//CHECK#7
+if (7.E-1 !== 0.7) {
+ $ERROR('#7: 7.E-1 === 0.7');
+}
+
+//CHECK#8
+if (8.E-1 !== 0.8) {
+ $ERROR('#8: 8.E-1 === 0.8');
+}
+
+//CHECK#9
+if (9.E-1 !== 0.9) {
+ $ERROR('#9: 9.E-1 === 0.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T5.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T5.js
new file mode 100644
index 000000000..9b2e9b820
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T5.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.3_T5.js
+ * @description ExponentPart :: e +DecimalDigits
+ */
+
+//CHECK#0
+if (0.e+1 !== 0) {
+ $ERROR('#0: 0.e+1 === 0');
+}
+
+//CHECK#1
+if (1.e+1 !== 10) {
+ $ERROR('#1: 1.e+1 === 10');
+}
+
+//CHECK#2
+if (2.e+1 !== 20) {
+ $ERROR('#2: 2.e+1 === 20');
+}
+
+//CHECK#3
+if (3.e+1 !== 30) {
+ $ERROR('#3: 3.e+1 === 30');
+}
+
+//CHECK#4
+if (4.e+1 !== 40) {
+ $ERROR('#4: 4.e+1 === 40');
+}
+
+//CHECK#5
+if (5.e+1 !== 50) {
+ $ERROR('#5: 5.e+1 === 50');
+}
+
+//CHECK#6
+if (6.e+1 !== 60) {
+ $ERROR('#6: 6.e+1 === 60');
+}
+
+//CHECK#7
+if (7.e+1 !== 70) {
+ $ERROR('#7: 7.e+1 === 70');
+}
+
+//CHECK#8
+if (8.e+1 !== 80) {
+ $ERROR('#8: 8.e+1 === 80');
+}
+
+//CHECK#9
+if (9.e+1 !== 90) {
+ $ERROR('#9: 9.e+1 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T6.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T6.js
new file mode 100644
index 000000000..33c8a84c9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T6.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.3_T6.js
+ * @description ExponentPart :: E +DecimalDigits
+ */
+
+//CHECK#0
+if (0.E+1 !== 0) {
+ $ERROR('#0: 0.E+1 === 0');
+}
+
+//CHECK#1
+if (1.E+1 !== 10) {
+ $ERROR('#1: 1.E+1 === 10');
+}
+
+//CHECK#2
+if (2.E+1 !== 20) {
+ $ERROR('#2: 2.E+1 === 20');
+}
+
+//CHECK#3
+if (3.E+1 !== 30) {
+ $ERROR('#3: 3.E+1 === 30');
+}
+
+//CHECK#4
+if (4.E+1 !== 40) {
+ $ERROR('#4: 4.E+1 === 40');
+}
+
+//CHECK#5
+if (5.E+1 !== 50) {
+ $ERROR('#5: 5.E+1 === 50');
+}
+
+//CHECK#6
+if (6.E+1 !== 60) {
+ $ERROR('#6: 6.E+1 === 60');
+}
+
+//CHECK#7
+if (7.E+1 !== 70) {
+ $ERROR('#7: 7.E+1 === 70');
+}
+
+//CHECK#8
+if (8.E+1 !== 80) {
+ $ERROR('#8: 8.E+1 === 80');
+}
+
+//CHECK#9
+if (9.E+1 !== 90) {
+ $ERROR('#9: 9.E+1 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T7.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T7.js
new file mode 100644
index 000000000..628581d66
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T7.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.3_T7.js
+ * @description ExponentPart :: e 0
+ */
+
+//CHECK#0
+if (0.e0 !== 0) {
+ $ERROR('#0: 0.e0 === 0');
+}
+
+//CHECK#1
+if (1.e0 !== 1) {
+ $ERROR('#1: 1.e0 === 1');
+}
+
+//CHECK#2
+if (2.e0 !== 2) {
+ $ERROR('#2: 2.e0 === 2');
+}
+
+//CHECK#3
+if (3.e0 !== 3) {
+ $ERROR('#3: 3.e0 === 3');
+}
+
+//CHECK#4
+if (4.e0 !== 4) {
+ $ERROR('#4: 4.e0 === 4');
+}
+
+//CHECK#5
+if (5.e0 !== 5) {
+ $ERROR('#5: 5.e0 === 5');
+}
+
+//CHECK#6
+if (6.e0 !== 6) {
+ $ERROR('#6: 6.e0 === 6');
+}
+
+//CHECK#7
+if (7.e0 !== 7) {
+ $ERROR('#7: 7.e0 === 7');
+}
+
+//CHECK#8
+if (8.e0 !== 8) {
+ $ERROR('#8: 8.e0 === 8');
+}
+
+//CHECK#9
+if (9.e0 !== 9) {
+ $ERROR('#9: 9.e0 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T8.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T8.js
new file mode 100644
index 000000000..b6f249124
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.3_T8.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.3_T8.js
+ * @description ExponentPart :: E 0
+ */
+
+//CHECK#0
+if (0.E0 !== 0) {
+ $ERROR('#0: 0.E0 === 0');
+}
+
+//CHECK#1
+if (1.E0 !== 1) {
+ $ERROR('#1: 1.E0 === 1');
+}
+
+//CHECK#2
+if (2.E0 !== 2) {
+ $ERROR('#2: 2.E0 === 2');
+}
+
+//CHECK#3
+if (3.E0 !== 3) {
+ $ERROR('#3: 3.E0 === 3');
+}
+
+//CHECK#4
+if (4.E0 !== 4) {
+ $ERROR('#4: 4.E0 === 4');
+}
+
+//CHECK#5
+if (5.E0 !== 5) {
+ $ERROR('#5: 5.E0 === 5');
+}
+
+//CHECK#6
+if (6.E0 !== 6) {
+ $ERROR('#6: 6.E0 === 6');
+}
+
+//CHECK#7
+if (7.E0 !== 7) {
+ $ERROR('#7: 7.E0 === 7');
+}
+
+//CHECK#8
+if (8.E0 !== 8) {
+ $ERROR('#8: 8.E0 === 8');
+}
+
+//CHECK#9
+if (9.E0 !== 9) {
+ $ERROR('#9: 9.E0 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T1.js
new file mode 100644
index 000000000..15ad5b224
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T1.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.4_T1.js
+ * @description ExponentPart :: e DecimalDigits
+ */
+
+//CHECK#0
+if (0.0e1 !== 0) {
+ $ERROR('#0: 0.0e1 === 0');
+}
+
+//CHECK#1
+if (1.1e1 !== 11) {
+ $ERROR('#1: 1.1e1 === 11');
+}
+
+//CHECK#2
+if (2.2e1 !== 22) {
+ $ERROR('#2: 2.2e1 === 22');
+}
+
+//CHECK#3
+if (3.3e1 !== 33) {
+ $ERROR('#3: 3.3e1 === 33');
+}
+
+//CHECK#4
+if (4.4e1 !== 44) {
+ $ERROR('#4: 4.4e1 === 44');
+}
+
+//CHECK#5
+if (5.5e1 !== 55) {
+ $ERROR('#5: 5.5e1 === 55');
+}
+
+//CHECK#6
+if (6.6e1 !== 66) {
+ $ERROR('#6: 6.e1 === 66');
+}
+
+//CHECK#7
+if (7.7e1 !== 77) {
+ $ERROR('#7: 7.7e1 === 77');
+}
+
+//CHECK#8
+if (8.8e1 !== 88) {
+ $ERROR('#8: 8.8e1 === 88');
+}
+
+//CHECK#9
+if (9.9e1 !== 99) {
+ $ERROR('#9: 9.9e1 === 99');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T2.js
new file mode 100644
index 000000000..a3a67a30e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T2.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.4_T2.js
+ * @description ExponentPart :: E DecimalDigits
+ */
+
+//CHECK#0
+if (0.0E1 !== 0) {
+ $ERROR('#0: 0.0E1 === 0');
+}
+
+//CHECK#1
+if (1.1E1 !== 11) {
+ $ERROR('#1: 1.1E1 === 11');
+}
+
+//CHECK#2
+if (2.2E1 !== 22) {
+ $ERROR('#2: 2.2E1 === 22');
+}
+
+//CHECK#3
+if (3.3E1 !== 33) {
+ $ERROR('#3: 3.3E1 === 33');
+}
+
+//CHECK#4
+if (4.4E1 !== 44) {
+ $ERROR('#4: 4.4E1 === 44');
+}
+
+//CHECK#5
+if (5.5E1 !== 55) {
+ $ERROR('#5: 5.5E1 === 55');
+}
+
+//CHECK#6
+if (6.6E1 !== 66) {
+ $ERROR('#6: 6.E1 === 66');
+}
+
+//CHECK#7
+if (7.7E1 !== 77) {
+ $ERROR('#7: 7.7E1 === 77');
+}
+
+//CHECK#8
+if (8.8E1 !== 88) {
+ $ERROR('#8: 8.8E1 === 88');
+}
+
+//CHECK#9
+if (9.9E1 !== 99) {
+ $ERROR('#9: 9.9E1 === 99');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T3.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T3.js
new file mode 100644
index 000000000..fef945e47
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T3.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.4_T3.js
+ * @description ExponentPart :: e -DecimalDigits
+ */
+
+//CHECK#0
+if (0.0e-1 !== 0) {
+ $ERROR('#0: 0.0e-1 === 0');
+}
+
+//CHECK#1
+if (1.1e-1 !== 0.11) {
+ $ERROR('#1: 1.1e-1 === 0.11');
+}
+
+//CHECK#2
+if (2.2e-1 !== 0.22) {
+ $ERROR('#2: 2.2e-1 === 0.22');
+}
+
+//CHECK#3
+if (3.3e-1 !== 0.33) {
+ $ERROR('#3: 3.3e-1 === 0.33');
+}
+
+//CHECK#4
+if (4.4e-1 !== 0.44) {
+ $ERROR('#4: 4.4e-1 === 0.44');
+}
+
+//CHECK#5
+if (5.5e-1 !== 0.55) {
+ $ERROR('#5: 5.5e-1 === 0.55');
+}
+
+//CHECK#6
+if (6.6e-1 !== 0.66) {
+ $ERROR('#6: 6.e-1 === 0.66');
+}
+
+//CHECK#7
+if (7.7e-1 !== 0.77) {
+ $ERROR('#7: 7.7e-1 === 0.77');
+}
+
+//CHECK#8
+if (8.8e-1 !== 0.88) {
+ $ERROR('#8: 8.8e-1 === 0.88');
+}
+
+//CHECK#9
+if (9.9e-1 !== 0.99) {
+ $ERROR('#9: 9.9e-1 === 0.99');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T4.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T4.js
new file mode 100644
index 000000000..f68532fd8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T4.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.4_T4.js
+ * @description ExponentPart :: E -DecimalDigits
+ */
+
+//CHECK#0
+if (0.0E-1 !== 0) {
+ $ERROR('#0: 0.0E-1 === 0');
+}
+
+//CHECK#1
+if (1.1E-1 !== 0.11) {
+ $ERROR('#1: 1.1E-1 === 0.11');
+}
+
+//CHECK#2
+if (2.2E-1 !== 0.22) {
+ $ERROR('#2: 2.2E-1 === 0.22');
+}
+
+//CHECK#3
+if (3.3E-1 !== 0.33) {
+ $ERROR('#3: 3.3E-1 === 0.33');
+}
+
+//CHECK#4
+if (4.4E-1 !== 0.44) {
+ $ERROR('#4: 4.4E-1 === 0.44');
+}
+
+//CHECK#5
+if (5.5E-1 !== 0.55) {
+ $ERROR('#5: 5.5E-1 === 0.55');
+}
+
+//CHECK#6
+if (6.6E-1 !== 0.66) {
+ $ERROR('#6: 6.E-1 === 0.66');
+}
+
+//CHECK#7
+if (7.7E-1 !== 0.77) {
+ $ERROR('#7: 7.7E-1 === 0.77');
+}
+
+//CHECK#8
+if (8.8E-1 !== 0.88) {
+ $ERROR('#8: 8.8E-1 === 0.88');
+}
+
+//CHECK#9
+if (9.9E-1 !== 0.99) {
+ $ERROR('#9: 9.9E-1 === 0.99');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T5.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T5.js
new file mode 100644
index 000000000..161105928
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T5.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.4_T5.js
+ * @description ExponentPart :: e +DecimalDigits
+ */
+
+//CHECK#0
+if (0.0e+1 !== 0) {
+ $ERROR('#0: 0.0e+1 === 0');
+}
+
+//CHECK#1
+if (1.1e+1 !== 11) {
+ $ERROR('#1: 1.1e+1 === 11');
+}
+
+//CHECK#2
+if (2.2e+1 !== 22) {
+ $ERROR('#2: 2.2e+1 === 22');
+}
+
+//CHECK#3
+if (3.3e+1 !== 33) {
+ $ERROR('#3: 3.3e+1 === 33');
+}
+
+//CHECK#4
+if (4.4e+1 !== 44) {
+ $ERROR('#4: 4.4e+1 === 44');
+}
+
+//CHECK#5
+if (5.5e+1 !== 55) {
+ $ERROR('#5: 5.5e+1 === 55');
+}
+
+//CHECK#6
+if (6.6e+1 !== 66) {
+ $ERROR('#6: 6.e+1 === 66');
+}
+
+//CHECK#7
+if (7.7e+1 !== 77) {
+ $ERROR('#7: 7.7e+1 === 77');
+}
+
+//CHECK#8
+if (8.8e+1 !== 88) {
+ $ERROR('#8: 8.8e+1 === 88');
+}
+
+//CHECK#9
+if (9.9e+1 !== 99) {
+ $ERROR('#9: 9.9e+1 === 99');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T6.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T6.js
new file mode 100644
index 000000000..5d28f6609
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T6.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.4_T6.js
+ * @description ExponentPart :: E +DecimalDigits
+ */
+
+//CHECK#0
+if (0.0E+1 !== 0) {
+ $ERROR('#0: 0.0E+1 === 0');
+}
+
+//CHECK#1
+if (1.1E+1 !== 11) {
+ $ERROR('#1: 1.1E+1 === 11');
+}
+
+//CHECK#2
+if (2.2E+1 !== 22) {
+ $ERROR('#2: 2.2E+1 === 22');
+}
+
+//CHECK#3
+if (3.3E+1 !== 33) {
+ $ERROR('#3: 3.3E+1 === 33');
+}
+
+//CHECK#4
+if (4.4E+1 !== 44) {
+ $ERROR('#4: 4.4E+1 === 44');
+}
+
+//CHECK#5
+if (5.5E+1 !== 55) {
+ $ERROR('#5: 5.5E+1 === 55');
+}
+
+//CHECK#6
+if (6.6E+1 !== 66) {
+ $ERROR('#6: 6.E+1 === 66');
+}
+
+//CHECK#7
+if (7.7E+1 !== 77) {
+ $ERROR('#7: 7.7E+1 === 77');
+}
+
+//CHECK#8
+if (8.8E+1 !== 88) {
+ $ERROR('#8: 8.8E+1 === 88');
+}
+
+//CHECK#9
+if (9.9E+1 !== 99) {
+ $ERROR('#9: 9.9E+1 === 99');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T7.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T7.js
new file mode 100644
index 000000000..b5ebe39d4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T7.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.4_T7.js
+ * @description ExponentPart :: e 0
+ */
+
+//CHECK#0
+if (0.0e0 !== 0.0) {
+ $ERROR('#0: 0.0e0 === 0.0');
+}
+
+//CHECK#1
+if (1.1e0 !== 1.1) {
+ $ERROR('#1: 1.1e0 === 1.1');
+}
+
+//CHECK#2
+if (2.2e0 !== 2.2) {
+ $ERROR('#2: 2.2e0 === 2.2');
+}
+
+//CHECK#3
+if (3.3e0 !== 3.3) {
+ $ERROR('#3: 3.3e0 === 3.3');
+}
+
+//CHECK#4
+if (4.4e0 !== 4.4) {
+ $ERROR('#4: 4.4e0 === 4.4');
+}
+
+//CHECK#5
+if (5.5e0 !== 5.5) {
+ $ERROR('#5: 5.5e0 === 5.5');
+}
+
+//CHECK#6
+if (6.6e0 !== 6.6) {
+ $ERROR('#6: 6.e0 === 6.6');
+}
+
+//CHECK#7
+if (7.7e0 !== 7.7) {
+ $ERROR('#7: 7.7e0 === 7.7');
+}
+
+//CHECK#8
+if (8.8e0 !== 8.8) {
+ $ERROR('#8: 8.8e0 === 8.8');
+}
+
+//CHECK#9
+if (9.9e0 !== 9.9) {
+ $ERROR('#9: 9.9e0 === 9.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T8.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T8.js
new file mode 100644
index 000000000..36b643364
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A3.4_T8.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A3.4_T8.js
+ * @description ExponentPart :: E 0
+ */
+
+//CHECK#0
+if (0.0E0 !== 0.0) {
+ $ERROR('#0: 0.0E0 === 0.0');
+}
+
+//CHECK#1
+if (1.1E0 !== 1.1) {
+ $ERROR('#1: 1.1E0 === 1.1');
+}
+
+//CHECK#2
+if (2.2E0 !== 2.2) {
+ $ERROR('#2: 2.2E0 === 2.2');
+}
+
+//CHECK#3
+if (3.3E0 !== 3.3) {
+ $ERROR('#3: 3.3E0 === 3.3');
+}
+
+//CHECK#4
+if (4.4E0 !== 4.4) {
+ $ERROR('#4: 4.4E0 === 4.4');
+}
+
+//CHECK#5
+if (5.5E0 !== 5.5) {
+ $ERROR('#5: 5.5E0 === 5.5');
+}
+
+//CHECK#6
+if (6.6E0 !== 6.6) {
+ $ERROR('#6: 6.E0 === 6.6');
+}
+
+//CHECK#7
+if (7.7E0 !== 7.7) {
+ $ERROR('#7: 7.7E0 === 7.7');
+}
+
+//CHECK#8
+if (8.8E0 !== 8.8) {
+ $ERROR('#8: 8.8E0 === 8.8');
+}
+
+//CHECK#9
+if (9.9E0 !== 9.9) {
+ $ERROR('#9: 9.9E0 === 9.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T1.js
new file mode 100644
index 000000000..eaed76725
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: ExponentPart is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.1_T1.js
+ * @description ExponentPart :: e DecimalDigits
+ * @negative
+ */
+
+//CHECK#1
+e1
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T2.js
new file mode 100644
index 000000000..306ed8ba2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: ExponentPart is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.1_T2.js
+ * @description ExponentPart :: E DecimalDigits
+ * @negative
+ */
+
+//CHECK#1
+E1
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T3.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T3.js
new file mode 100644
index 000000000..b7c5e5a9f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T3.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: ExponentPart is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.1_T3.js
+ * @description ExponentPart :: e DecimalDigits
+ * @negative
+ */
+
+//CHECK#1
+e-1
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T4.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T4.js
new file mode 100644
index 000000000..fb21413d4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T4.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: ExponentPart is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.1_T4.js
+ * @description ExponentPart :: E DecimalDigits
+ * @negative
+ */
+
+//CHECK#1
+E-1
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T5.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T5.js
new file mode 100644
index 000000000..89719f0f7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T5.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: ExponentPart is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.1_T5.js
+ * @description ExponentPart :: e DecimalDigits
+ * @negative
+ */
+
+//CHECK#1
+e+1
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T6.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T6.js
new file mode 100644
index 000000000..533e23bc4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T6.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: ExponentPart is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.1_T6.js
+ * @description ExponentPart :: E DecimalDigits
+ * @negative
+ */
+
+//CHECK#1
+E+1
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T7.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T7.js
new file mode 100644
index 000000000..d6475e50f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T7.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: ExponentPart is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.1_T7.js
+ * @description ExponentPart :: e 0
+ * @negative
+ */
+
+//CHECK#1
+e0
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T8.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T8.js
new file mode 100644
index 000000000..89e284f4f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.1_T8.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: ExponentPart is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.1_T8.js
+ * @description ExponentPart :: E 0
+ * @negative
+ */
+
+//CHECK#1
+E0
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T1.js
new file mode 100644
index 000000000..a925aaed9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T1.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.2_T1.js
+ * @description ExponentIndicator :: e
+ */
+
+//CHECK#0
+if (0e01 !== 0) {
+ $ERROR('#0: 0e01 === 0');
+}
+
+//CHECK#1
+if (1e01 !== 10) {
+ $ERROR('#1: 1e01 === 10');
+}
+
+//CHECK#2
+if (2e01 !== 20) {
+ $ERROR('#2: 2e01 === 20');
+}
+
+//CHECK#3
+if (3e01 !== 30) {
+ $ERROR('#3: 3e01 === 30');
+}
+
+//CHECK#4
+if (4e01 !== 40) {
+ $ERROR('#4: 4e01 === 40');
+}
+
+//CHECK#5
+if (5e01 !== 50) {
+ $ERROR('#5: 5e01 === 50');
+}
+
+//CHECK#6
+if (6e01 !== 60) {
+ $ERROR('#6: 6e01 === 60');
+}
+
+//CHECK#7
+if (7e01 !== 70) {
+ $ERROR('#7: 7e01 === 70');
+}
+
+//CHECK#8
+if (8e01 !== 80) {
+ $ERROR('#8: 8e01 === 80');
+}
+
+//CHECK#9
+if (9e01 !== 90) {
+ $ERROR('#9: 9e01 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T2.js
new file mode 100644
index 000000000..bfc6f4eee
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T2.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.2_T2.js
+ * @description ExponentIndicator :: E
+ */
+
+//CHECK#0
+if (0E01 !== 0) {
+ $ERROR('#0: 0E01 === 0');
+}
+
+//CHECK#1
+if (1E01 !== 10) {
+ $ERROR('#1: 1E01 === 10');
+}
+
+//CHECK#2
+if (2E01 !== 20) {
+ $ERROR('#2: 2E01 === 20');
+}
+
+//CHECK#3
+if (3E01 !== 30) {
+ $ERROR('#3: 3E01 === 30');
+}
+
+//CHECK#4
+if (4E01 !== 40) {
+ $ERROR('#4: 4E01 === 40');
+}
+
+//CHECK#5
+if (5E01 !== 50) {
+ $ERROR('#5: 5E01 === 50');
+}
+
+//CHECK#6
+if (6E01 !== 60) {
+ $ERROR('#6: 6E01 === 60');
+}
+
+//CHECK#7
+if (7E01 !== 70) {
+ $ERROR('#7: 7E01 === 70');
+}
+
+//CHECK#8
+if (8E01 !== 80) {
+ $ERROR('#8: 8E01 === 80');
+}
+
+//CHECK#9
+if (9E01 !== 90) {
+ $ERROR('#9: 9E01 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T3.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T3.js
new file mode 100644
index 000000000..15f7bf7bd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T3.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.2_T3.js
+ * @description ExponentIndicator :: e
+ */
+
+//CHECK#0
+if (0e-01 !== 0) {
+ $ERROR('#0: 0e-01 === 0');
+}
+
+//CHECK#1
+if (1e-01 !== 0.1) {
+ $ERROR('#1: 1e-01 === 0.1');
+}
+
+//CHECK#2
+if (2e-01 !== 0.2) {
+ $ERROR('#2: 2e-01 === 0.2');
+}
+
+//CHECK#3
+if (3e-01 !== 0.3) {
+ $ERROR('#3: 3e-01 === 0.3');
+}
+
+//CHECK#4
+if (4e-01 !== 0.4) {
+ $ERROR('#4: 4e-01 === 0.4');
+}
+
+//CHECK#5
+if (5e-01 !== 0.5) {
+ $ERROR('#5: 5e-01 === 0.5');
+}
+
+//CHECK#6
+if (6e-01 !== 0.6) {
+ $ERROR('#6: 6e-01 === 0.6');
+}
+
+//CHECK#7
+if (7e-01 !== 0.7) {
+ $ERROR('#7: 7e-01 === 0.7');
+}
+
+//CHECK#8
+if (8e-01 !== 0.8) {
+ $ERROR('#8: 8e-01 === 0.8');
+}
+
+//CHECK#9
+if (9e-01 !== 0.9) {
+ $ERROR('#9: 9e-01 === 0.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T4.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T4.js
new file mode 100644
index 000000000..2682b8f0e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T4.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.2_T4.js
+ * @description ExponentIndicator :: E
+ */
+
+//CHECK#0
+if (0E-01 !== 0) {
+ $ERROR('#0: 0E-01 === 0');
+}
+
+//CHECK#1
+if (1E-01 !== 0.1) {
+ $ERROR('#1: 1E-01 === 0.1');
+}
+
+//CHECK#2
+if (2E-01 !== 0.2) {
+ $ERROR('#2: 2E-01 === 0.2');
+}
+
+//CHECK#3
+if (3E-01 !== 0.3) {
+ $ERROR('#3: 3E-01 === 0.3');
+}
+
+//CHECK#4
+if (4E-01 !== 0.4) {
+ $ERROR('#4: 4E-01 === 0.4');
+}
+
+//CHECK#5
+if (5E-01 !== 0.5) {
+ $ERROR('#5: 5E-01 === 0.5');
+}
+
+//CHECK#6
+if (6E-01 !== 0.6) {
+ $ERROR('#6: 6E-01 === 0.6');
+}
+
+//CHECK#7
+if (7E-01 !== 0.7) {
+ $ERROR('#7: 7E-01 === 0.7');
+}
+
+//CHECK#8
+if (8E-01 !== 0.8) {
+ $ERROR('#8: 8E-01 === 0.8');
+}
+
+//CHECK#9
+if (9E-01 !== 0.9) {
+ $ERROR('#9: 9E-01 === 0.9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T5.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T5.js
new file mode 100644
index 000000000..386daa930
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T5.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.2_T5.js
+ * @description ExponentIndicator :: e
+ */
+
+//CHECK#0
+if (0e+01 !== 0) {
+ $ERROR('#0: 0e+01 === 0');
+}
+
+//CHECK#1
+if (1e+01 !== 10) {
+ $ERROR('#1: 1e+01 === 10');
+}
+
+//CHECK#2
+if (2e+01 !== 20) {
+ $ERROR('#2: 2e+01 === 20');
+}
+
+//CHECK#3
+if (3e+01 !== 30) {
+ $ERROR('#3: 3e+01 === 30');
+}
+
+//CHECK#4
+if (4e+01 !== 40) {
+ $ERROR('#4: 4e+01 === 40');
+}
+
+//CHECK#5
+if (5e+01 !== 50) {
+ $ERROR('#5: 5e+01 === 50');
+}
+
+//CHECK#6
+if (6e+01 !== 60) {
+ $ERROR('#6: 6e+01 === 60');
+}
+
+//CHECK#7
+if (7e+01 !== 70) {
+ $ERROR('#7: 7e+01 === 70');
+}
+
+//CHECK#8
+if (8e+01 !== 80) {
+ $ERROR('#8: 8e+01 === 80');
+}
+
+//CHECK#9
+if (9e+01 !== 90) {
+ $ERROR('#9: 9e+01 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T6.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T6.js
new file mode 100644
index 000000000..df360f5ea
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T6.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.2_T6.js
+ * @description ExponentIndicator :: E
+ */
+
+//CHECK#0
+if (0E+01 !== 0) {
+ $ERROR('#0: 0E+01 === 0');
+}
+
+//CHECK#1
+if (1E+01 !== 10) {
+ $ERROR('#1: 1E+01 === 10');
+}
+
+//CHECK#2
+if (2E+01 !== 20) {
+ $ERROR('#2: 2E+01 === 20');
+}
+
+//CHECK#3
+if (3E+01 !== 30) {
+ $ERROR('#3: 3E+01 === 30');
+}
+
+//CHECK#4
+if (4E+01 !== 40) {
+ $ERROR('#4: 4E+01 === 40');
+}
+
+//CHECK#5
+if (5E+01 !== 50) {
+ $ERROR('#5: 5E+01 === 50');
+}
+
+//CHECK#6
+if (6E+01 !== 60) {
+ $ERROR('#6: 6E+01 === 60');
+}
+
+//CHECK#7
+if (7E+01 !== 70) {
+ $ERROR('#7: 7E+01 === 70');
+}
+
+//CHECK#8
+if (8E+01 !== 80) {
+ $ERROR('#8: 8E+01 === 80');
+}
+
+//CHECK#9
+if (9E+01 !== 90) {
+ $ERROR('#9: 9E+01 === 90');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T7.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T7.js
new file mode 100644
index 000000000..9fbd8a679
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T7.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.2_T7.js
+ * @description ExponentIndicator :: e
+ */
+
+//CHECK#0
+if (0e00 !== 0) {
+ $ERROR('#0: 0e00 === 0');
+}
+
+//CHECK#1
+if (1e00 !== 1) {
+ $ERROR('#1: 1e00 === 1');
+}
+
+//CHECK#2
+if (2e00 !== 2) {
+ $ERROR('#2: 2e00 === 2');
+}
+
+//CHECK#3
+if (3e00 !== 3) {
+ $ERROR('#3: 3e00 === 3');
+}
+
+//CHECK#4
+if (4e00 !== 4) {
+ $ERROR('#4: 4e00 === 4');
+}
+
+//CHECK#5
+if (5e00 !== 5) {
+ $ERROR('#5: 5e00 === 5');
+}
+
+//CHECK#6
+if (6e00 !== 6) {
+ $ERROR('#6: 6e00 === 6');
+}
+
+//CHECK#7
+if (7e00 !== 7) {
+ $ERROR('#7: 7e00 === 7');
+}
+
+//CHECK#8
+if (8e00 !== 8) {
+ $ERROR('#8: 8e00 === 8');
+}
+
+//CHECK#9
+if (9e00 !== 9) {
+ $ERROR('#9: 9e00 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T8.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T8.js
new file mode 100644
index 000000000..2c62351fa
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A4.2_T8.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A4.2_T8.js
+ * @description ExponentIndicator :: E
+ */
+
+//CHECK#0
+if (0E00 !== 0) {
+ $ERROR('#0: 0E00 === 0');
+}
+
+//CHECK#1
+if (1E00 !== 1) {
+ $ERROR('#1: 1E00 === 1');
+}
+
+//CHECK#2
+if (2E00 !== 2) {
+ $ERROR('#2: 2E00 === 2');
+}
+
+//CHECK#3
+if (3E00 !== 3) {
+ $ERROR('#3: 3E00 === 3');
+}
+
+//CHECK#4
+if (4E00 !== 4) {
+ $ERROR('#4: 4E00 === 4');
+}
+
+//CHECK#5
+if (5E00 !== 5) {
+ $ERROR('#5: 5E00 === 5');
+}
+
+//CHECK#6
+if (6E00 !== 6) {
+ $ERROR('#6: 6E00 === 6');
+}
+
+//CHECK#7
+if (7E00 !== 7) {
+ $ERROR('#7: 7E00 === 7');
+}
+
+//CHECK#8
+if (8E00 !== 8) {
+ $ERROR('#8: 8E00 === 8');
+}
+
+//CHECK#9
+if (9E00 !== 9) {
+ $ERROR('#9: 9E00 === 9');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T1.js
new file mode 100644
index 000000000..2e6b786b4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T1.js
@@ -0,0 +1,90 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: HexIntegerLiteral
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A5.1_T1.js
+ * @description HexIntegerLiteral :: 0x Digit
+ */
+
+//CHECK#0
+if (0x0 !== 0) {
+ $ERROR('#0: 0x0 === 0');
+}
+
+//CHECK#1
+if (0x1 !== 1) {
+ $ERROR('#1: 0x1 === 1');
+}
+
+//CHECK#2
+if (0x2 !== 2) {
+ $ERROR('#2: 0x2 === 2');
+}
+
+//CHECK#3
+if (0x3 !== 3) {
+ $ERROR('#3: 0x3 === 3');
+}
+
+//CHECK#4
+if (0x4 !== 4) {
+ $ERROR('#4: 0x4 === 4');
+}
+
+//CHECK#5
+if (0x5 !== 5) {
+ $ERROR('#5: 0x5 === 5');
+}
+
+//CHECK#6
+if (0x6 !== 6) {
+ $ERROR('#6: 0x6 === 6');
+}
+
+//CHECK#7
+if (0x7 !== 7) {
+ $ERROR('#7: 0x7 === 7');
+}
+
+//CHECK#8
+if (0x8 !== 8) {
+ $ERROR('#8: 0x8 === 8');
+}
+
+//CHECK#9
+if (0x9 !== 9) {
+ $ERROR('#9: 0x9 === 9');
+}
+
+//CHECK#A
+if (0xA !== 10) {
+ $ERROR('#A: 0xA === 10');
+}
+
+//CHECK#B
+if (0xB !== 11) {
+ $ERROR('#B: 0xB === 11');
+}
+
+//CHECK#C
+if (0xC !== 12) {
+ $ERROR('#C: 0xC === 12');
+}
+
+//CHECK#D
+if (0xD !== 13) {
+ $ERROR('#D: 0xD === 13');
+}
+
+//CHECK#E
+if (0xE !== 14) {
+ $ERROR('#E: 0xE === 14');
+}
+
+//CHECK#F
+if (0xF !== 15) {
+ $ERROR('#F: 0xF === 15');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T2.js
new file mode 100644
index 000000000..ca55655e2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T2.js
@@ -0,0 +1,90 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: HexIntegerLiteral
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A5.1_T2.js
+ * @description HexIntegerLiteral :: 0X Digit
+ */
+
+//CHECK#0
+if (0X0 !== 0) {
+ $ERROR('#0: 0X0 === 0');
+}
+
+//CHECK#1
+if (0X1 !== 1) {
+ $ERROR('#1: 0X1 === 1');
+}
+
+//CHECK#2
+if (0X2 !== 2) {
+ $ERROR('#2: 0X2 === 2');
+}
+
+//CHECK#3
+if (0X3 !== 3) {
+ $ERROR('#3: 0X3 === 3');
+}
+
+//CHECK#4
+if (0X4 !== 4) {
+ $ERROR('#4: 0X4 === 4');
+}
+
+//CHECK#5
+if (0X5 !== 5) {
+ $ERROR('#5: 0X5 === 5');
+}
+
+//CHECK#6
+if (0X6 !== 6) {
+ $ERROR('#6: 0X6 === 6');
+}
+
+//CHECK#7
+if (0X7 !== 7) {
+ $ERROR('#7: 0X7 === 7');
+}
+
+//CHECK#8
+if (0X8 !== 8) {
+ $ERROR('#8: 0X8 === 8');
+}
+
+//CHECK#9
+if (0X9 !== 9) {
+ $ERROR('#9: 0X9 === 9');
+}
+
+//CHECK#A
+if (0XA !== 10) {
+ $ERROR('#A: 0XA === 10');
+}
+
+//CHECK#B
+if (0XB !== 11) {
+ $ERROR('#B: 0XB === 11');
+}
+
+//CHECK#C
+if (0XC !== 12) {
+ $ERROR('#C: 0XC === 12');
+}
+
+//CHECK#D
+if (0XD !== 13) {
+ $ERROR('#D: 0XD === 13');
+}
+
+//CHECK#E
+if (0XE !== 14) {
+ $ERROR('#E: 0XE === 14');
+}
+
+//CHECK#F
+if (0XF !== 15) {
+ $ERROR('#F: 0XF === 15');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T3.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T3.js
new file mode 100644
index 000000000..089a84112
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T3.js
@@ -0,0 +1,55 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: HexIntegerLiteral
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A5.1_T3.js
+ * @description HexIntegerLiteral :: 0x NonZeroDigit Digits
+ */
+
+//CHECK#0
+if (0x0 !== 0) {
+ $ERROR('#0: 0x0 === 0');
+}
+
+//CHECK#1
+if (0x1 !== 1) {
+ $ERROR('#1: 0x1 === 1');
+}
+
+//CHECK#2
+if (0x10 !== 16) {
+ $ERROR('#2: 0x10 === 16');
+}
+
+//CHECK3
+if (0x100 !== 256) {
+ $ERROR('3: 0x100 === 256');
+}
+
+//CHECK#4
+if (0x1000 !== 4096) {
+ $ERROR('#4: 0x1000 === 4096');
+}
+
+//CHECK#5
+if (0x10000 !== 65536) {
+ $ERROR('#5: 0x10000 === 65536');
+}
+
+//CHECK#6
+if (0x100000 !== 1048576) {
+ $ERROR('#6: 0x100000 === 1048576');
+}
+
+//CHECK#7
+if (0x1000000 !== 16777216) {
+ $ERROR('#7: 0x1000000 === 16777216');
+}
+
+//CHECK#8
+if (0x10000000 !== 268435456) {
+ $ERROR('#8: 0x10000000 === 268435456');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T4.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T4.js
new file mode 100644
index 000000000..5ddc484a8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T4.js
@@ -0,0 +1,55 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: HexIntegerLiteral
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A5.1_T4.js
+ * @description HexIntegerLiteral :: 0X NonZeroDigit Digits
+ */
+
+//CHECK#0
+if (0X0 !== 0) {
+ $ERROR('#0: 0X0 === 0');
+}
+
+//CHECK#1
+if (0X1 !== 1) {
+ $ERROR('#1: 0X1 === 1');
+}
+
+//CHECK#2
+if (0X10 !== 16) {
+ $ERROR('#2: 0X10 === 16');
+}
+
+//CHECK3
+if (0X100 !== 256) {
+ $ERROR('3: 0X100 === 256');
+}
+
+//CHECK#4
+if (0X1000 !== 4096) {
+ $ERROR('#4: 0X1000 === 4096');
+}
+
+//CHECK#5
+if (0X10000 !== 65536) {
+ $ERROR('#5: 0X10000 === 65536');
+}
+
+//CHECK#6
+if (0X100000 !== 1048576) {
+ $ERROR('#6: 0X100000 === 1048576');
+}
+
+//CHECK#7
+if (0X1000000 !== 16777216) {
+ $ERROR('#7: 0X1000000 === 16777216');
+}
+
+//CHECK#8
+if (0X10000000 !== 268435456) {
+ $ERROR('#8: 0X10000000 === 268435456');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T5.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T5.js
new file mode 100644
index 000000000..da8e61ed4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T5.js
@@ -0,0 +1,55 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: HexIntegerLiteral
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A5.1_T5.js
+ * @description HexIntegerLiteral :: 0x0 Digits
+ */
+
+//CHECK#0
+if (0x00 !== 0) {
+ $ERROR('#0: 0x00 === 0');
+}
+
+//CHECK#1
+if (0x01 !== 1) {
+ $ERROR('#1: 0x01 === 1');
+}
+
+//CHECK#2
+if (0x010 !== 16) {
+ $ERROR('#2: 0x010 === 16');
+}
+
+//CHECK3
+if (0x0100 !== 256) {
+ $ERROR('3: 0x0100 === 256');
+}
+
+//CHECK#4
+if (0x01000 !== 4096) {
+ $ERROR('#4: 0x01000 === 4096');
+}
+
+//CHECK#5
+if (0x010000 !== 65536) {
+ $ERROR('#5: 0x010000 === 65536');
+}
+
+//CHECK#6
+if (0x0100000 !== 1048576) {
+ $ERROR('#6: 0x0100000 === 1048576');
+}
+
+//CHECK#7
+if (0x01000000 !== 16777216) {
+ $ERROR('#7: 0x01000000 === 16777216');
+}
+
+//CHECK#8
+if (0x010000000 !== 268435456) {
+ $ERROR('#8: 0x010000000 === 268435456');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T6.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T6.js
new file mode 100644
index 000000000..659c7dfbb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T6.js
@@ -0,0 +1,55 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: HexIntegerLiteral
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A5.1_T6.js
+ * @description HexIntegerLiteral :: 0X0 Digits
+ */
+
+//CHECK#0
+if (0X00 !== 0) {
+ $ERROR('#0: 0X00 === 0');
+}
+
+//CHECK#1
+if (0X01 !== 1) {
+ $ERROR('#1: 0X01 === 1');
+}
+
+//CHECK#2
+if (0X010 !== 16) {
+ $ERROR('#2: 0X010 === 16');
+}
+
+//CHECK3
+if (0X0100 !== 256) {
+ $ERROR('3: 0X0100 === 256');
+}
+
+//CHECK#4
+if (0X01000 !== 4096) {
+ $ERROR('#4: 0X01000 === 4096');
+}
+
+//CHECK#5
+if (0X010000 !== 65536) {
+ $ERROR('#5: 0X010000 === 65536');
+}
+
+//CHECK#6
+if (0X0100000 !== 1048576) {
+ $ERROR('#6: 0X0100000 === 1048576');
+}
+
+//CHECK#7
+if (0X01000000 !== 16777216) {
+ $ERROR('#7: 0X01000000 === 16777216');
+}
+
+//CHECK#8
+if (0X010000000 !== 268435456) {
+ $ERROR('#8: 0X010000000 === 268435456');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T7.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T7.js
new file mode 100644
index 000000000..7bc52989c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T7.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: HexIntegerLiteral
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A5.1_T7.js
+ * @description HexIntegerLiteral :: 0x one of a, b, c, d, e, f
+ */
+
+//CHECK#a
+if (0xa !== 10) {
+ $ERROR('#a: 0xa === 10');
+}
+
+//CHECK#b
+if (0xb !== 11) {
+ $ERROR('#b: 0xb === 11');
+}
+
+//CHECK#c
+if (0xc !== 12) {
+ $ERROR('#c: 0xc === 12');
+}
+
+//CHECK#d
+if (0xd !== 13) {
+ $ERROR('#d: 0xd === 13');
+}
+
+//CHECK#e
+if (0xe !== 14) {
+ $ERROR('#e: 0xe === 14');
+}
+
+//CHECK#f
+if (0xf !== 15) {
+ $ERROR('#f: 0xf === 15');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T8.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T8.js
new file mode 100644
index 000000000..1f95ab586
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A5.1_T8.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * DecimalLiteral :: HexIntegerLiteral
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A5.1_T8.js
+ * @description HexIntegerLiteral :: 0X one of a, b, c, d, e, f
+ */
+
+//CHECK#a
+if (0Xa !== 10) {
+ $ERROR('#a: 0Xa === 10');
+}
+
+//CHECK#b
+if (0Xb !== 11) {
+ $ERROR('#b: 0Xb === 11');
+}
+
+//CHECK#c
+if (0Xc !== 12) {
+ $ERROR('#c: 0Xc === 12');
+}
+
+//CHECK#d
+if (0Xd !== 13) {
+ $ERROR('#d: 0Xd === 13');
+}
+
+//CHECK#e
+if (0Xe !== 14) {
+ $ERROR('#e: 0Xe === 14');
+}
+
+//CHECK#f
+if (0Xf !== 15) {
+ $ERROR('#f: 0Xf === 15');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.1_T1.js
new file mode 100644
index 000000000..3be2b908f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.1_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * HexIntegerLiteral :: 0(x/X) is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A6.1_T1.js
+ * @description Checking if execution of "0x" passes
+ * @negative
+ */
+
+//CHECK#1
+0x
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.1_T2.js
new file mode 100644
index 000000000..8b813b81f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.1_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * HexIntegerLiteral :: 0(x/X) is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A6.1_T2.js
+ * @description Checking if execution of "0X" passes
+ * @negative
+ */
+
+//CHECK#1
+0X
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.2_T1.js
new file mode 100644
index 000000000..accd26589
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.2_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * 0xG is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A6.2_T1.js
+ * @description Checking if execution of "0xG" fails
+ * @negative
+ */
+
+//CHECK#1
+0xG
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.2_T2.js
new file mode 100644
index 000000000..7a14fef29
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/S7.8.3_A6.2_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * 0xG is incorrect
+ *
+ * @path ch07/7.8/7.8.3/S7.8.3_A6.2_T2.js
+ * @description Checking if execution of "0xg" fails
+ * @negative
+ */
+
+//CHECK#1
+0xg
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/browser.js b/js/src/tests/test262/ch07/7.8/7.8.3/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/browser.js
diff --git a/js/src/tests/test262/ch07/7.8/7.8.3/shell.js b/js/src/tests/test262/ch07/7.8/7.8.3/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.3/shell.js
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-1-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-1-s.js
new file mode 100644
index 000000000..f5548e4f3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-1-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-1-s.js
+ * @description A directive preceeding an 'use strict' directive may not contain an OctalEscapeSequence
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval(' "asterisk: \\052" /* octal escape sequences forbidden in strict mode*/ ; "use strict";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-10-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-10-s.js
new file mode 100644
index 000000000..c7069c0fa
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-10-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-10-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = " \\10 ";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-11-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-11-s.js
new file mode 100644
index 000000000..02e5264b9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-11-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-11-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\16";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-12-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-12-s.js
new file mode 100644
index 000000000..27211ab83
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-12-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-12-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\17";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-13-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-13-s.js
new file mode 100644
index 000000000..a5641d491
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-13-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-13-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\30";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-14-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-14-s.js
new file mode 100644
index 000000000..11a3ceaba
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-14-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-14-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\31";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-15-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-15-s.js
new file mode 100644
index 000000000..ddf59df33
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-15-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-15-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\37";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-16-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-16-s.js
new file mode 100644
index 000000000..add6f1b16
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-16-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-16-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\400";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-17-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-17-s.js
new file mode 100644
index 000000000..f132d927c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-17-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-17-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\411";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-18-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-18-s.js
new file mode 100644
index 000000000..db679216f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-18-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-18-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\43a";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-19-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-19-s.js
new file mode 100644
index 000000000..c1792cfa3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-19-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-19-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\463";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-1gs.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-1gs.js
new file mode 100644
index 000000000..4974d0b5f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-1gs.js
@@ -0,0 +1,14 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-1gs.js
+ * @description Strict Mode - OctalEscapeSequence(\0110) is forbidden in strict mode
+ * @onlyStrict
+ * @negative ^((?!NotEarlyError).)*$
+ */
+"use strict";
+throw NotEarlyError;
+var _7_8_4_2 = '100abc\0110def';
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-2-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-2-s.js
new file mode 100644
index 000000000..5d5e02dc3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-2-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-2-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\1";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-20-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-20-s.js
new file mode 100644
index 000000000..170cb4c5a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-20-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-20-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\474";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-21-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-21-s.js
new file mode 100644
index 000000000..1dca614fc
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-21-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-21-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\77";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-22-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-22-s.js
new file mode 100644
index 000000000..dc7399147
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-22-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-22-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\777";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-23-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-23-s.js
new file mode 100644
index 000000000..e8d7c1204
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-23-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-23-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\000";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-24-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-24-s.js
new file mode 100644
index 000000000..e0cea8f6e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-24-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-24-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\001";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-25-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-25-s.js
new file mode 100644
index 000000000..060d0cd07
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-25-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-25-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\106";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-26-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-26-s.js
new file mode 100644
index 000000000..d986b4de9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-26-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-26-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\207";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-27-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-27-s.js
new file mode 100644
index 000000000..b208bdb6f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-27-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-27-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\377";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-28-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-28-s.js
new file mode 100644
index 000000000..a0967eb8e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-28-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-28-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\376";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-29-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-29-s.js
new file mode 100644
index 000000000..60e65af65
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-29-s.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-29-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\3760";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+}
+runTestCase(testcase); \ No newline at end of file
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-3-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-3-s.js
new file mode 100644
index 000000000..0885c5c74
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-3-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-3-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "a\\4";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-30-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-30-s.js
new file mode 100644
index 000000000..73cbdfedc
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-30-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-30-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\' + '1";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-31-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-31-s.js
new file mode 100644
index 000000000..a33c8bbc6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-31-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-31-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\" + "1";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-32-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-32-s.js
new file mode 100644
index 000000000..312e870c3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-32-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-32-s.js
+ * @description Two OctalEscapeSequences in a String are not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\1\\1";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-33-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-33-s.js
new file mode 100644
index 000000000..639313c92
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-33-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-33-s.js
+ * @description Three OctalEscapeSequences in a String are not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\1\\2\\7";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-4-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-4-s.js
new file mode 100644
index 000000000..bd4e93fe6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-4-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-4-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "z\\7";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-5-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-5-s.js
new file mode 100644
index 000000000..1108364ab
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-5-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-5-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\00a";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-6-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-6-s.js
new file mode 100644
index 000000000..119415796
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-6-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-6-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\01z";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-7-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-7-s.js
new file mode 100644
index 000000000..254d2953e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-7-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-7-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "a\\03z";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-8-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-8-s.js
new file mode 100644
index 000000000..04e3eac9b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-8-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-8-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = " \\06";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-9-s.js b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-9-s.js
new file mode 100644
index 000000000..1efa2e57a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/7.8.4-9-s.js
@@ -0,0 +1,24 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.4/7.8.4-9-s.js
+ * @description An OctalEscapeSequence is not allowed in a String under Strict Mode
+ * @onlyStrict
+ */
+
+
+function testcase()
+{
+ try
+ {
+ eval('"use strict"; var x = "\\07 ";');
+ return false;
+ }
+ catch (e) {
+ return (e instanceof SyntaxError);
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.1_T1.js
new file mode 100644
index 000000000..02c823418
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.1_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * StringLiteral :: "DoubleStringCharacters_opt"
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A1.1_T1.js
+ * @description DoubleStringCharacter :: SourceCharacter but not double-quote " or LineTerminator
+ * @negative
+ */
+
+//CHECK#1
+"""
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.1_T2.js
new file mode 100644
index 000000000..bedbcea86
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.1_T2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * StringLiteral :: "DoubleStringCharacters_opt"
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A1.1_T2.js
+ * @description DoubleStringCharacter :: SourceCharacter but not double-quote " or LineTerminator
+ * @negative
+ */
+
+//CHECK#1
+"
+"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.2_T1.js
new file mode 100644
index 000000000..964e5be6c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.2_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * StringLiteral :: 'SingleStringCharacters_opt'
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A1.2_T1.js
+ * @description SingleStringCharacter :: SourceCharacter but not single-quote ' or LineTerminator
+ * @negative
+ */
+
+//CHECK#1
+'''
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.2_T2.js
new file mode 100644
index 000000000..82890f5c2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A1.2_T2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * StringLiteral :: 'SingleStringCharacters_opt'
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A1.2_T2.js
+ * @description SingleStringCharacter :: SourceCharacter but not single-quote ' or LineTerminator
+ * @negative
+ */
+
+//CHECK#1
+'
+'
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.1_T1.js
new file mode 100644
index 000000000..9a555b814
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.1_T1.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of ENGLISH ALPHABET
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A2.1_T1.js
+ * @description Check ENGLISH CAPITAL ALPHABET
+ */
+
+//CHECK#A-Z
+var unicode = ["\u0041", "\u0042", "\u0043", "\u0044", "\u0045", "\u0046", "\u0047", "\u0048", "\u0049", "\u004A", "\u004B", "\u004C", "\u004D", "\u004E", "\u004F", "\u0050", "\u0051", "\u0052", "\u0053", "\u0054", "\u0055", "\u0056", "\u0057", "\u0058", "\u0059", "\u005A"];
+var character = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
+for (var index = 0; index <= 25; index++) {
+ if (unicode[index] !== character[index]) {
+ $ERROR('#' + character[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.1_T2.js
new file mode 100644
index 000000000..f7e8ccfa3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.1_T2.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of ENGLISH ALPHABET
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A2.1_T2.js
+ * @description Check ENGLISH SMALL ALPHABET
+ */
+
+//CHECK#a-z
+var hex = ["\u0061", "\u0062", "\u0063", "\u0064", "\u0065", "\u0066", "\u0067", "\u0068", "\u0069", "\u006A", "\u006B", "\u006C", "\u006D", "\u006E", "\u006F", "\u0070", "\u0071", "\u0072", "\u0073", "\u0074", "\u0075", "\u0076", "\u0077", "\u0078", "\u0079", "\u007A"];
+var character = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
+for (var index = 0; index <= 25; index++) {
+ if (hex[index] !== character[index]) {
+ $ERROR('#' + character[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.2_T1.js
new file mode 100644
index 000000000..cefe28d57
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.2_T1.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of RUSSIAN ALPHABET
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A2.2_T1.js
+ * @description Check RUSSIAN CAPITAL ALPHABET
+ */
+
+//CHECK#А-Я
+var unicode = ["\u0410", "\u0411", "\u0412", "\u0413", "\u0414", "\u0415", "\u0416", "\u0417", "\u0418", "\u0419", "\u041A", "\u041B", "\u041C", "\u041D", "\u041E", "\u041F", "\u0420", "\u0421", "\u0422", "\u0423", "\u0424", "\u0425", "\u0426", "\u0427", "\u0428", "\u0429", "\u042A", "\u042B", "\u042C", "\u042D", "\u042E", "\u042F", "\u0401"];
+var character = ["А", "Б", "В", "Г", "Д", "Е", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я", "Ё"];
+for (var index = 0; index <= 32; index++) {
+ if (unicode[index] !== character[index]) {
+ $ERROR('#' + character[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.2_T2.js
new file mode 100644
index 000000000..09fc5877b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.2_T2.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of RUSSIAN ALPHABET
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A2.2_T2.js
+ * @description Check RUSSIAN SMALL ALPHABET
+ */
+
+//CHECK#а-я
+var unicode = ["\u0430", "\u0431", "\u0432", "\u0433", "\u0434", "\u0435", "\u0436", "\u0437", "\u0438", "\u0439", "\u043A", "\u043B", "\u043C", "\u043D", "\u043E", "\u043F", "\u0440", "\u0441", "\u0442", "\u0443", "\u0444", "\u0445", "\u0446", "\u0447", "\u0448", "\u0449", "\u044A", "\u044B", "\u044C", "\u044D", "\u044E", "\u044F", "\u0451"];
+var character = ["а", "б", "в", "г", "д", "е", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я", "ё"];
+for (var index = 0; index <= 32; index++) {
+ if (unicode[index] !== character[index]) {
+ $ERROR('#' + character[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.3_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.3_T1.js
new file mode 100644
index 000000000..30e6133b7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A2.3_T1.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Correct interpretation of DIGITS
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A2.3_T1.js
+ * @description Check DIGITS
+ */
+
+//CHECK#0-9
+var unicode = ["\u0030", "\u0031", "\u0032", "\u0033", "\u0034", "\u0035", "\u0036", "\u0037", "\u0038", "\u0039"];
+var character = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
+for (var index = 0; index <= 9; index++) {
+ if (unicode[index] !== character[index]) {
+ $ERROR('#' + character[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.1_T1.js
new file mode 100644
index 000000000..f25e6538d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.1_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * StringLiteral :: "\" or '\' is not correct
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A3.1_T1.js
+ * @description Checking if execution of "\" fails
+ * @negative
+ */
+
+//CHECK#1
+"\"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.1_T2.js
new file mode 100644
index 000000000..82cf8717b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.1_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * StringLiteral :: "\" or '\' is not correct
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A3.1_T2.js
+ * @description Checking if execution of "'\'" fails
+ * @negative
+ */
+
+//CHECK#1
+'\'
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.2_T1.js
new file mode 100644
index 000000000..54aaf12c6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.2_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * StringLiteral :: "\\\" or '\\\' is not correct
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A3.2_T1.js
+ * @description Checking if execution of "\\\" fails
+ * @negative
+ */
+
+//CHECK#1
+"\\\"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.2_T2.js
new file mode 100644
index 000000000..a26421e76
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A3.2_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * StringLiteral :: "\\\" or '\\\' is not correct
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A3.2_T2.js
+ * @description Checking if execution of '\\\' fails
+ * @negative
+ */
+
+//CHECK#1
+'\\\'
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.1_T1.js
new file mode 100644
index 000000000..9cac9a2d9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.1_T1.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CharacterEscapeSequnce :: SingleEscapeSequence
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.1_T1.js
+ * @description SingleEscapeSequence :: one of b f n r t v
+ */
+
+//CHECK#1
+if (String.fromCharCode(0x0008) !== "\b") {
+ $ERROR('#1: String.fromCharCode(0x0008) === "\\b"');
+}
+
+//CHECK#2
+if (String.fromCharCode(0x0009) !== "\t") {
+ $ERROR('#2: String.fromCharCode(0x0009) === "\\t"');
+}
+
+//CHECK#3
+if (String.fromCharCode(0x000A) !== "\n") {
+ $ERROR('#3: String.fromCharCode(0x000A) === "\\n"');
+}
+
+//CHECK#4
+if (String.fromCharCode(0x000B) !== "\v") {
+ $ERROR('#4: String.fromCharCode(0x000B) === "\\v"');
+}
+
+//CHECK#5
+if (String.fromCharCode(0x000C) !== "\f") {
+ $ERROR('#5: String.fromCharCode(0x000C) === "\\f"');
+}
+
+//CHECK#6
+if (String.fromCharCode(0x000D) !== "\r") {
+ $ERROR('#6: String.fromCharCode(0x000D) === "\\r"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.1_T2.js
new file mode 100644
index 000000000..c99f669ef
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.1_T2.js
@@ -0,0 +1,35 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CharacterEscapeSequnce :: SingleEscapeSequence
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.1_T2.js
+ * @description SingleEscapeSequence :: one of ' " \
+ */
+
+//CHECK#1
+if (String.fromCharCode(0x0027) !== "\'") {
+ $ERROR('#1: String.fromCharCode(0x0027) === "\\\'"');
+}
+
+//CHECK#2
+if (String.fromCharCode(0x0022) !== '\"') {
+ $ERROR('#2: String.fromCharCode(0x0027) === \'\\\"\'');
+}
+
+//CHECK#3
+if (String.fromCharCode(0x005C) !== "\\") {
+ $ERROR('#3: String.fromCharCode(0x005C) === "\\\"');
+}
+
+//CHECK#4
+if ("\'" !== "'") {
+ $ERROR('#4: "\'" === "\\\'"');
+}
+
+//CHECK#5
+if ('\"' !== '"') {
+ $ERROR('#5: \'\"\' === \'\\\"\'');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T1.js
new file mode 100644
index 000000000..8abfdd031
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T1.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CharacterEscapeSequnce :: NonEscapeSequence
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.2_T1.js
+ * @description NonEscapeSequence :: ENGLISH CAPITAL ALPHABET
+ */
+
+//CHECK#A-Z
+var CharacterCode = [0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A];
+var NonEscapeCharacter = ["\A", "\B", "\C", "\D", "\E", "\F", "\G", "\H", "\I", "\J", "\K", "\L", "\M", "\N", "\O", "\P", "\Q", "\R", "\S", "\T", "\U", "\V", "\W", "\X", "\Y", "\Z"];
+for (var index = 0; index <= 25; index++) {
+ if (String.fromCharCode(CharacterCode[index]) !== NonEscapeCharacter[index]) {
+ $ERROR('#' + NonEscapeCharacter[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T2.js
new file mode 100644
index 000000000..660d2e62e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T2.js
@@ -0,0 +1,115 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CharacterEscapeSequnce :: NonEscapeSequence
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.2_T2.js
+ * @description NonEscapeSequence :: ENGLISH CAPITAL ALPHABET
+ */
+
+//CHECK#A-Z
+if ("A" !== "\A") {
+ $ERROR('#A');
+}
+
+if ("B" !== "\B") {
+ $ERROR('#B');
+}
+
+if ("C" !== "\C") {
+ $ERROR('#C');
+}
+
+if ("D" !== "\D") {
+ $ERROR('#D');
+}
+
+if ("E" !== "\E") {
+ $ERROR('#E');
+}
+
+if ("F" !== "\F") {
+ $ERROR('#F');
+}
+
+if ("G" !== "\G") {
+ $ERROR('#G');
+}
+
+if ("H" !== "\H") {
+ $ERROR('#H');
+}
+
+if ("I" !== "\I") {
+ $ERROR('#I');
+}
+
+if ("J" !== "\J") {
+ $ERROR('#J');
+}
+
+if ("K" !== "\K") {
+ $ERROR('#K');
+}
+
+if ("L" !== "\L") {
+ $ERROR('#L');
+}
+
+if ("M" !== "\M") {
+ $ERROR('#M');
+}
+
+if ("N" !== "\N") {
+ $ERROR('#N');
+}
+
+if ("O" !== "\O") {
+ $ERROR('#O');
+}
+
+if ("P" !== "\P") {
+ $ERROR('#P');
+}
+
+if ("Q" !== "\Q") {
+ $ERROR('#Q');
+}
+
+if ("R" !== "\R") {
+ $ERROR('#R');
+}
+
+if ("S" !== "\S") {
+ $ERROR('#S');
+}
+
+if ("T" !== "\T") {
+ $ERROR('#T');
+}
+
+if ("U" !== "\U") {
+ $ERROR('#U');
+}
+
+if ("V" !== "\V") {
+ $ERROR('#V');
+}
+
+if ("W" !== "\W") {
+ $ERROR('#W');
+}
+
+if ("X" !== "\X") {
+ $ERROR('#X');
+}
+
+if ("Y" !== "\Y") {
+ $ERROR('#Y');
+}
+
+if ("Z" !== "\Z") {
+ $ERROR('#Z');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T3.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T3.js
new file mode 100644
index 000000000..39194063a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T3.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CharacterEscapeSequnce :: NonEscapeSequence
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.2_T3.js
+ * @description NonEscapeSequence :: ENGLISH SMALL ALPHABET
+ */
+
+//CHECK#a-z without b, f, n, r, t, v, x, u
+var CharacterCode = [0x0061, 0x0063, 0x0064, 0x0065, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006F, 0x0070, 0x0071, 0x0073, 0x0077, 0x0079, 0x007A];
+var NonEscapeCharacter = ["\a", "\c", "\d", "\e", "\g", "\h", "\i", "\j", "\k", "\l", "\m", "\o", "\p", "\q", "\s", "\w", "\y", "\z"];
+for (var index = 0; index <= 17; index++) {
+ if (String.fromCharCode(CharacterCode[index]) !== NonEscapeCharacter[index]) {
+ $ERROR('#' + NonEscapeCharacter[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T4.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T4.js
new file mode 100644
index 000000000..19e61c5e1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T4.js
@@ -0,0 +1,86 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CharacterEscapeSequnce :: NonEscapeSequence
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.2_T4.js
+ * @description NonEscapeSequence :: ENGLISH SMALL ALPHABET
+ */
+
+//CHECK#a-z without b, f, n, r, t, v, x, u
+
+if ("a" !== "\a") {
+ $ERROR('#a');
+}
+
+if ("c" !== "\c") {
+ $ERROR('#c');
+}
+
+if ("d" !== "\d") {
+ $ERROR('#d');
+}
+
+if ("e" !== "\e") {
+ $ERROR('#e');
+}
+
+if ("g" !== "\g") {
+ $ERROR('#g');
+}
+
+if ("h" !== "\h") {
+ $ERROR('#h');
+}
+
+if ("i" !== "\i") {
+ $ERROR('#i');
+}
+
+if ("j" !== "\j") {
+ $ERROR('#j');
+}
+
+if ("k" !== "\k") {
+ $ERROR('#k');
+}
+
+if ("l" !== "\l") {
+ $ERROR('#l');
+}
+
+if ("m" !== "\m") {
+ $ERROR('#m');
+}
+
+
+if ("o" !== "\o") {
+ $ERROR('#o');
+}
+
+if ("p" !== "\p") {
+ $ERROR('#p');
+}
+
+if ("q" !== "\q") {
+ $ERROR('#q');
+}
+
+if ("s" !== "\s") {
+ $ERROR('#s');
+}
+
+if ("w" !== "\w") {
+ $ERROR('#w');
+}
+
+if ("y" !== "\y") {
+ $ERROR('#y');
+}
+
+if ("z" !== "\z") {
+ $ERROR('#z');
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T5.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T5.js
new file mode 100644
index 000000000..57c1b8efd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T5.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CharacterEscapeSequnce :: NonEscapeSequence
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.2_T5.js
+ * @description NonEscapeSequence :: RUSSIAN CAPITAL ALPHABET
+ */
+
+//CHECK#А-Я
+var CharacterCode = [0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, 0x0401];
+var NonEscapeCharacter = ["\А", "\Б", "\В", "\Г", "\Д", "\Е", "\Ж", "\З", "\И", "\Й", "\К", "\Л", "\М", "\Н", "\О", "\П", "\Р", "\С", "\Т", "\У", "\Ф", "\Х", "\Ц", "\Ч", "\Ш", "\Щ", "\Ъ", "\Ы", "\Ь", "\Э", "\Ю", "\Я", "\Ё"];
+for (var index = 0; index <= 32; index++) {
+ if (String.fromCharCode(CharacterCode[index]) !== NonEscapeCharacter[index]) {
+ $ERROR('#' + NonEscapeCharacter[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T6.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T6.js
new file mode 100644
index 000000000..86e7ac2ca
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T6.js
@@ -0,0 +1,144 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CharacterEscapeSequnce :: NonEscapeSequence
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.2_T6.js
+ * @description NonEscapeSequence :: RUSSIAN CAPITAL ALPHABET
+ */
+
+//CHECK#А-Я
+
+if ("А" !== "\А") {
+ $ERROR('#А');
+}
+
+if ("Б" !== "\Б") {
+ $ERROR('#Б');
+}
+
+if ("В" !== "\В") {
+ $ERROR('#В');
+}
+
+if ("Г" !== "\Г") {
+ $ERROR('#Г');
+}
+
+if ("Д" !== "\Д") {
+ $ERROR('#Д');
+}
+
+if ("Е" !== "\Е") {
+ $ERROR('#Е');
+}
+
+if ("Ж" !== "\Ж") {
+ $ERROR('#Ж');
+}
+
+if ("З" !== "\З") {
+ $ERROR('#З');
+}
+
+if ("И" !== "\И") {
+ $ERROR('#И');
+}
+
+if ("Й" !== "\Й") {
+ $ERROR('#Й');
+}
+
+if ("К" !== "\К") {
+ $ERROR('#К');
+}
+
+if ("Л" !== "\Л") {
+ $ERROR('#Л');
+}
+
+if ("М" !== "\М") {
+ $ERROR('#М');
+}
+
+if ("Н" !== "\Н") {
+ $ERROR('#Н');
+}
+
+if ("О" !== "\О") {
+ $ERROR('#О');
+}
+
+if ("П" !== "\П") {
+ $ERROR('#П');
+}
+
+if ("Р" !== "\Р") {
+ $ERROR('#Р');
+}
+
+if ("С" !== "\С") {
+ $ERROR('#С');
+}
+
+if ("Т" !== "\Т") {
+ $ERROR('#Т');
+}
+
+if ("У" !== "\У") {
+ $ERROR('#У');
+}
+
+if ("Ф" !== "\Ф") {
+ $ERROR('#Ф');
+}
+
+if ("Х" !== "\Х") {
+ $ERROR('#Х');
+}
+
+if ("Ц" !== "\Ц") {
+ $ERROR('#Ц');
+}
+
+if ("Ч" !== "\Ч") {
+ $ERROR('#Ч');
+}
+
+if ("Ш" !== "\Ш") {
+ $ERROR('#Ш');
+}
+
+if ("Щ" !== "\Щ") {
+ $ERROR('#Щ');
+}
+
+if ("Ъ" !== "\Ъ") {
+ $ERROR('#Ъ');
+}
+
+if ("Ы" !== "\Ы") {
+ $ERROR('#Ы');
+}
+
+if ("Ь" !== "\Ь") {
+ $ERROR('#Ь');
+}
+
+if ("Э" !== "\Э") {
+ $ERROR('#Э');
+}
+
+if ("Ю" !== "\Ю") {
+ $ERROR('#Ю');
+}
+
+if ("Я" !== "\Я") {
+ $ERROR('#Я');
+}
+
+if ("Ё" !== "\Ё") {
+ $ERROR('#Ё');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T7.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T7.js
new file mode 100644
index 000000000..78915dce4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T7.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CharacterEscapeSequnce :: NonEscapeSequence
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.2_T7.js
+ * @description NonEscapeSequence :: RUSSIAN SMALL ALPHABET
+ */
+
+//CHECK#а-я
+var CharacterCode = [0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x0451];
+var NonEscapeCharacter = ["\а", "\б", "\в", "\г", "\д", "\е", "\ж", "\з", "\и", "\й", "\к", "\л", "\м", "\н", "\о", "\п", "\р", "\с", "\т", "\у", "\ф", "\х", "\ц", "\ч", "\ш", "\щ", "\ъ", "\ы", "\ь", "\э", "\ю", "\я", "\ё"];
+for (var index = 0; index <= 32; index++) {
+ if (String.fromCharCode(CharacterCode[index]) !== NonEscapeCharacter[index]) {
+ $ERROR('#' + NonEscapeCharacter[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T8.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T8.js
new file mode 100644
index 000000000..3ef3f843e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.2_T8.js
@@ -0,0 +1,144 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * CharacterEscapeSequnce :: NonEscapeSequence
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.2_T8.js
+ * @description NonEscapeSequence :: RUSSIAN SMALL ALPHABET
+ */
+
+//CHECK#а-я
+
+if ("а" !== "\а") {
+ $ERROR('#а');
+}
+
+if ("б" !== "\б") {
+ $ERROR('#б');
+}
+
+if ("в" !== "\в") {
+ $ERROR('#в');
+}
+
+if ("г" !== "\г") {
+ $ERROR('#г');
+}
+
+if ("д" !== "\д") {
+ $ERROR('#д');
+}
+
+if ("е" !== "\е") {
+ $ERROR('#е');
+}
+
+if ("ж" !== "\ж") {
+ $ERROR('#ж');
+}
+
+if ("з" !== "\з") {
+ $ERROR('#з');
+}
+
+if ("и" !== "\и") {
+ $ERROR('#и');
+}
+
+if ("й" !== "\й") {
+ $ERROR('#й');
+}
+
+if ("к" !== "\к") {
+ $ERROR('#к');
+}
+
+if ("л" !== "\л") {
+ $ERROR('#л');
+}
+
+if ("м" !== "\м") {
+ $ERROR('#м');
+}
+
+if ("н" !== "\н") {
+ $ERROR('#н');
+}
+
+if ("о" !== "\о") {
+ $ERROR('#о');
+}
+
+if ("п" !== "\п") {
+ $ERROR('#п');
+}
+
+if ("р" !== "\р") {
+ $ERROR('#р');
+}
+
+if ("с" !== "\с") {
+ $ERROR('#с');
+}
+
+if ("т" !== "\т") {
+ $ERROR('#т');
+}
+
+if ("у" !== "\у") {
+ $ERROR('#у');
+}
+
+if ("ф" !== "\ф") {
+ $ERROR('#ф');
+}
+
+if ("х" !== "\х") {
+ $ERROR('#х');
+}
+
+if ("ц" !== "\ц") {
+ $ERROR('#ц');
+}
+
+if ("ч" !== "\ч") {
+ $ERROR('#ч');
+}
+
+if ("ш" !== "\ш") {
+ $ERROR('#ш');
+}
+
+if ("щ" !== "\щ") {
+ $ERROR('#щ');
+}
+
+if ("ъ" !== "\ъ") {
+ $ERROR('#ъ');
+}
+
+if ("ы" !== "\ы") {
+ $ERROR('#ы');
+}
+
+if ("ь" !== "\ь") {
+ $ERROR('#ь');
+}
+
+if ("э" !== "\э") {
+ $ERROR('#э');
+}
+
+if ("ю" !== "\ю") {
+ $ERROR('#ю');
+}
+
+if ("я" !== "\я") {
+ $ERROR('#я');
+}
+
+if ("ё" !== "\ё") {
+ $ERROR('#ё');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T1.js
new file mode 100644
index 000000000..96c823ee8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T1.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * NonEscapeSequence is not EscapeCharacter
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.3_T1.js
+ * @description EscapeCharacter :: DecimalDigits :: 1
+ * @onlyStrict
+ * @negative
+ */
+
+"use strict";
+
+//CHECK#1
+"\1"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T2.js
new file mode 100644
index 000000000..b7f743e49
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * NonEscapeSequence is not EscapeCharacter
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.3_T2.js
+ * @description EscapeCharacter :: DecimalDigits :: 7
+ * @onlyStrict
+ * @negative
+ */
+
+"use strict";
+
+//CHECK#1
+"\7"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T7.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T7.js
new file mode 100644
index 000000000..063930342
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A4.3_T7.js
@@ -0,0 +1,36 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * NonEscapeSequence is not EscapeCharacter
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A4.3_T7.js
+ * @description EscapeCharacter :: SingleEscapeCharacter :: one of b f n r t v
+ */
+
+//CHECK#bfnrtv
+if ("b" === "\b") {
+ $ERROR('#b');
+}
+
+if ("f" === "\f") {
+ $ERROR('#f');
+}
+
+if ("n" === "\n") {
+ $ERROR('#n');
+}
+
+if ("r" === "\r") {
+ $ERROR('#r');
+}
+
+if ("t" === "\t") {
+ $ERROR('#t');
+}
+
+if ("v" === "\v") {
+ $ERROR('#v');
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T1.js
new file mode 100644
index 000000000..aa0acecb6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T1.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * EscapeSequence :: 0
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A5.1_T1.js
+ * @description String.fromCharCode(0x0000)
+ */
+
+//CHECK#1
+if (String.fromCharCode(0x0000) !== "\0") {
+ $ERROR('#1: String.fromCharCode(0x0000) === "\\0"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T2.js
new file mode 100644
index 000000000..06830f080
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * EscapeSequence :: 0
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A5.1_T2.js
+ * @description "\u0000"
+ */
+
+//CHECK#1
+if ("\u0000" !== "\0") {
+ $ERROR('#1: "\\u0000" === "\\0"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T3.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T3.js
new file mode 100644
index 000000000..f7a1de6ac
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A5.1_T3.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * EscapeSequence :: 0
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A5.1_T3.js
+ * @description "\x00"
+ */
+
+//CHECK#1
+if ("\x00" !== "\0") {
+ $ERROR('#1: "\\x00" === "\\0"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T1.js
new file mode 100644
index 000000000..ce8f5dae8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T1.js
@@ -0,0 +1,90 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * EscapeSequence :: HexEscapeSequence :: x HexDigit HexDigit
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A6.1_T1.js
+ * @description HexEscapeSequence :: HexDigit
+ */
+
+//CHECK#0
+if ("\x00" !== String.fromCharCode("0")) {
+ $ERROR('#0: "\\x00" === String.fromCharCode("0")');
+}
+
+//CHECK#1
+if ("\x01" !== String.fromCharCode("1")) {
+ $ERROR('#1: "\\x01" === String.fromCharCode("1")');
+}
+
+//CHECK#2
+if ("\x02" !== String.fromCharCode("2")) {
+ $ERROR('#2: "\\x02" === String.fromCharCode("2")');
+}
+
+//CHECK#3
+if ("\x03" !== String.fromCharCode("3")) {
+ $ERROR('#3: "\\x03" === String.fromCharCode("3")');
+}
+
+//CHECK#4
+if ("\x04" !== String.fromCharCode("4")) {
+ $ERROR('#4: "\\x04" === String.fromCharCode("4")');
+}
+
+//CHECK#5
+if ("\x05" !== String.fromCharCode("5")) {
+ $ERROR('#5: "\\x05" === String.fromCharCode("5")');
+}
+
+//CHECK#6
+if ("\x06" !== String.fromCharCode("6")) {
+ $ERROR('#6: "\\x06" === String.fromCharCode("6")');
+}
+
+//CHECK#7
+if ("\x07" !== String.fromCharCode("7")) {
+ $ERROR('#7: "\\x07" === String.fromCharCode("7")');
+}
+
+//CHECK#8
+if ("\x08" !== String.fromCharCode("8")) {
+ $ERROR('#8: "\\x08" === String.fromCharCode("8")');
+}
+
+//CHECK#9
+if ("\x09" !== String.fromCharCode("9")) {
+ $ERROR('#9: "\\x09" === String.fromCharCode("9")');
+}
+
+//CHECK#A
+if ("\x0A" !== String.fromCharCode("10")) {
+ $ERROR('#A: "\\x0A" === String.fromCharCode("10")');
+}
+
+//CHECK#B
+if ("\x0B" !== String.fromCharCode("11")) {
+ $ERROR('#B: "\\x0B" === String.fromCharCode("11")');
+}
+
+//CHECK#C
+if ("\x0C" !== String.fromCharCode("12")) {
+ $ERROR('#C: "\\x0C" === String.fromCharCode("12")');
+}
+
+//CHECK#D
+if ("\x0D" !== String.fromCharCode("13")) {
+ $ERROR('#D: "\\x0D" === String.fromCharCode("13")');
+}
+
+//CHECK#E
+if ("\x0E" !== String.fromCharCode("14")) {
+ $ERROR('#E: "\\x0E" === String.fromCharCode("14")');
+}
+
+//CHECK#F
+if ("\x0F" !== String.fromCharCode("15")) {
+ $ERROR('#F: "\\x0F" === String.fromCharCode("15")');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T2.js
new file mode 100644
index 000000000..64cdc0ebe
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T2.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * EscapeSequence :: HexEscapeSequence :: x HexDigit HexDigit
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A6.1_T2.js
+ * @description HexEscapeSequence :: ENGLISH CAPITAL ALPHABET
+ */
+
+//CHECK#A-Z
+var hex = ["\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4A", "\x4B", "\x4C", "\x4D", "\x4E", "\x4F", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5A"];
+var character = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
+for (var index = 0; index <= 25; index++) {
+ if (hex[index] !== character[index]) {
+ $ERROR('#' + character[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T3.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T3.js
new file mode 100644
index 000000000..c3ef6e4d3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.1_T3.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * EscapeSequence :: HexEscapeSequence :: x HexDigit HexDigit
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A6.1_T3.js
+ * @description HexEscapeSequence :: ENGLISH SMALL ALPHABET
+ */
+
+//CHECK#a-z
+var hex = ["\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6A", "\x6B", "\x6C", "\x6D", "\x6E", "\x6F", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7A"];
+var character = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
+for (var index = 0; index <= 25; index++) {
+ if (hex[index] !== character[index]) {
+ $ERROR('#' + character[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.3_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.3_T1.js
new file mode 100644
index 000000000..4611ba25a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A6.3_T1.js
@@ -0,0 +1,85 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * \x HexDigit HexDigit SingleStringCharacter
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A6.3_T1.js
+ * @description Check similar to ('\x01F' === String.fromCharCode('1') + 'F')
+ */
+
+//CHECK#1
+if ('\x01F' !== String.fromCharCode('1') + 'F') {
+ $ERROR("#1: '\x01F' === String.fromCharCode('1') + 'F'");
+}
+
+//CHECK#2
+if ('\x02E' !== String.fromCharCode('2') + 'E') {
+ $ERROR("#2: '\x02E' === String.fromCharCode('2') + 'E'");
+}
+
+//CHECK#3
+if ('\x03D' !== String.fromCharCode('3') + 'D') {
+ $ERROR("#3: '\x03D' === String.fromCharCode('3') + 'D'");
+}
+
+//CHECK#4
+if ('\x04C' !== String.fromCharCode('4') + 'C') {
+ $ERROR("#4: '\x04C' === String.fromCharCode('4') + 'C'");
+}
+
+//CHECK#5
+if ('\x05B' !== String.fromCharCode('5') + 'B') {
+ $ERROR("#5: '\x05B' === String.fromCharCode('5') + 'B'");
+}
+
+//CHECK#6
+if ('\x06A' !== String.fromCharCode('6') + 'A') {
+ $ERROR("#6: '\x06A' === String.fromCharCode('6') + 'A'");
+}
+
+//CHECK#7
+if ('\x079' !== String.fromCharCode('7') + '9') {
+ $ERROR("#7: '\x079' === String.fromCharCode('7') + '9'");
+}
+
+//CHECK#8
+if ('\x088' !== String.fromCharCode('8') + '8') {
+ $ERROR("#8: '\x088' === String.fromCharCode('8') + '8'");
+}
+
+//CHECK#9
+if ('\x097' !== String.fromCharCode('9') + '7') {
+ $ERROR("#9: '\x097' === String.fromCharCode('9') + '7'");
+}
+
+//CHECK#A
+if ('\x0A6' !== String.fromCharCode('10') + '6') {
+ $ERROR("#A: '\x0A6' === String.fromCharCode('10') + '6'");
+}
+
+//CHECK#B
+if ('\x0B5' !== String.fromCharCode('11') + '5') {
+ $ERROR("#B: '\x0B5' === String.fromCharCode('11') + '5'");
+}
+
+//CHECK#C
+if ('\x0C4' !== String.fromCharCode('12') + '4') {
+ $ERROR("#C: '\x0C4' === String.fromCharCode('12') + '4'");
+}
+
+//CHECK#D
+if ('\x0D3' !== String.fromCharCode('13') + '3') {
+ $ERROR("#D: '\x0D3' === String.fromCharCode('13') + '3'");
+}
+
+//CHECK#E
+if ('\x0E2' !== String.fromCharCode('14') + '2') {
+ $ERROR("#E: '\x0E2' === String.fromCharCode('14') + '2'");
+}
+
+//CHECK#F
+if ('\x0F1' !== String.fromCharCode('15') + '1') {
+ $ERROR("#F: '\x0F1' === String.fromCharCode('15') + '1'");
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T1.js
new file mode 100644
index 000000000..512de11f2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T1.js
@@ -0,0 +1,90 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * EscapeSequence :: UnicodeEscapeSequence :: u HexDigit HexDigit HexDigit HexDigit
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A7.1_T1.js
+ * @description Check similar to ("\u0000" === String.fromCharCode("0"))
+ */
+
+//CHECK#0
+if ("\u0000" !== String.fromCharCode("0")) {
+ $ERROR('#0: "\\u0000" === String.fromCharCode("0")');
+}
+
+//CHECK#1
+if ("\u0001" !== String.fromCharCode("1")) {
+ $ERROR('#1: "\\u0001" === String.fromCharCode("1")');
+}
+
+//CHECK#2
+if ("\u0002" !== String.fromCharCode("2")) {
+ $ERROR('#2: "\\u0002" === String.fromCharCode("2")');
+}
+
+//CHECK#3
+if ("\u0003" !== String.fromCharCode("3")) {
+ $ERROR('#3: "\\u0003" === String.fromCharCode("3")');
+}
+
+//CHECK#4
+if ("\u0004" !== String.fromCharCode("4")) {
+ $ERROR('#4: "\\u0004" === String.fromCharCode("4")');
+}
+
+//CHECK#5
+if ("\u0005" !== String.fromCharCode("5")) {
+ $ERROR('#5: "\\u0005" === String.fromCharCode("5")');
+}
+
+//CHECK#6
+if ("\u0006" !== String.fromCharCode("6")) {
+ $ERROR('#6: "\\u0006" === String.fromCharCode("6")');
+}
+
+//CHECK#7
+if ("\u0007" !== String.fromCharCode("7")) {
+ $ERROR('#7: "\\u0007" === String.fromCharCode("7")');
+}
+
+//CHECK#8
+if ("\u0008" !== String.fromCharCode("8")) {
+ $ERROR('#8: "\\u0008" === String.fromCharCode("8")');
+}
+
+//CHECK#9
+if ("\u0009" !== String.fromCharCode("9")) {
+ $ERROR('#9: "\\u0009" === String.fromCharCode("9")');
+}
+
+//CHECK#A
+if ("\u000A" !== String.fromCharCode("10")) {
+ $ERROR('#A: "\\u000A" === String.fromCharCode("10")');
+}
+
+//CHECK#B
+if ("\u000B" !== String.fromCharCode("11")) {
+ $ERROR('#B: "\\u000B" === String.fromCharCode("11")');
+}
+
+//CHECK#C
+if ("\u000C" !== String.fromCharCode("12")) {
+ $ERROR('#C: "\\u000C" === String.fromCharCode("12")');
+}
+
+//CHECK#D
+if ("\u000D" !== String.fromCharCode("13")) {
+ $ERROR('#D: "\\u000D" === String.fromCharCode("13")');
+}
+
+//CHECK#E
+if ("\u000E" !== String.fromCharCode("14")) {
+ $ERROR('#E: "\\u000E" === String.fromCharCode("14")');
+}
+
+//CHECK#F
+if ("\u000F" !== String.fromCharCode("15")) {
+ $ERROR('#F: "\\u000F" === String.fromCharCode("15")');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T2.js
new file mode 100644
index 000000000..32c6c3455
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T2.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * EscapeSequence :: UnicodeEscapeSequence :: u HexDigit HexDigit HexDigit HexDigit
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A7.1_T2.js
+ * @description UnicodeEscapeSequence :: ENGLISH CAPITAL ALPHABET
+ */
+
+//CHECK#A-Z
+var unicode = ["\u0041", "\u0042", "\u0043", "\u0044", "\u0045", "\u0046", "\u0047", "\u0048", "\u0049", "\u004A", "\u004B", "\u004C", "\u004D", "\u004E", "\u004F", "\u0050", "\u0051", "\u0052", "\u0053", "\u0054", "\u0055", "\u0056", "\u0057", "\u0058", "\u0059", "\u005A"];
+var character = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
+for (var index = 0; index <= 25; index++) {
+ if (unicode[index] !== character[index]) {
+ $ERROR('#' + character[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T3.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T3.js
new file mode 100644
index 000000000..7bf3ef85c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T3.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * EscapeSequence :: UnicodeEscapeSequence :: u HexDigit HexDigit HexDigit HexDigit
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A7.1_T3.js
+ * @description UnicodeEscapeSequence :: ENGLISH SMALL ALPHABET
+ */
+
+//CHECK#a-z
+var unicode = ["\u0061", "\u0062", "\u0063", "\u0064", "\u0065", "\u0066", "\u0067", "\u0068", "\u0069", "\u006A", "\u006B", "\u006C", "\u006D", "\u006E", "\u006F", "\u0070", "\u0071", "\u0072", "\u0073", "\u0074", "\u0075", "\u0076", "\u0077", "\u0078", "\u0079", "\u007A"];
+var character = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
+for (var index = 0; index <= 25; index++) {
+ if (unicode[index] !== character[index]) {
+ $ERROR('#' + character[index] + ' ');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T4.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T4.js
new file mode 100644
index 000000000..11b4f5620
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.1_T4.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * EscapeSequence :: UnicodeEscapeSequence :: u HexDigit HexDigit HexDigit HexDigit
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A7.1_T4.js
+ * @description UnicodeEscapeSequence :: u000G is incorrect
+ * @negative
+ */
+
+//CHECK#
+"\u000G"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T1.js
new file mode 100644
index 000000000..6c3cff0dd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A7.2_T1.js
+ * @description :: HexDigit :: 1
+ * @negative
+ */
+
+//CHECK#1
+"\u1"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T2.js
new file mode 100644
index 000000000..c1918f414
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A7.2_T2.js
+ * @description :: HexDigit :: A
+ * @negative
+ */
+
+//CHECK#1
+"\uA"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T3.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T3.js
new file mode 100644
index 000000000..b1eee5923
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T3.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A7.2_T3.js
+ * @description :: HexDigit :: 1
+ * @negative
+ */
+
+//CHECK#1
+"\u11"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T4.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T4.js
new file mode 100644
index 000000000..6fe1c8afe
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T4.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A7.2_T4.js
+ * @description :: HexDigit :: A
+ * @negative
+ */
+
+//CHECK#1
+"\uAA"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T5.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T5.js
new file mode 100644
index 000000000..f047e5337
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T5.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A7.2_T5.js
+ * @description :: HexDigit :: 1
+ * @negative
+ */
+
+//CHECK#1
+"\u111"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T6.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T6.js
new file mode 100644
index 000000000..5d28d4a5e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.2_T6.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A7.2_T6.js
+ * @description :: HexDigit :: A
+ * @negative
+ */
+
+//CHECK#1
+"\uAAA"
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.3_T1.js b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.3_T1.js
new file mode 100644
index 000000000..baaeaae6f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/S7.8.4_A7.3_T1.js
@@ -0,0 +1,85 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * \u HexDigit HexDigit HexDigit HexDigit DoubleStringCharacter
+ *
+ * @path ch07/7.8/7.8.4/S7.8.4_A7.3_T1.js
+ * @description Check similar to ("\u0001F" === String.fromCharCode("1") + "F")
+ */
+
+//CHECK#1
+if ("\u0001F" !== String.fromCharCode("1") + "F") {
+ $ERROR('#1: "\\u0001F" === String.fromCharCode("1") + "F"');
+}
+
+//CHECK#2
+if ("\u0002E" !== String.fromCharCode("2") + "E") {
+ $ERROR('#2: "\\u0002E" === String.fromCharCode("2") + "E"');
+}
+
+//CHECK#3
+if ("\u0003D" !== String.fromCharCode("3") + "D") {
+ $ERROR('#3: "\\u0003D" === String.fromCharCode("3") + "D"');
+}
+
+//CHECK#4
+if ("\u0004C" !== String.fromCharCode("4") + "C") {
+ $ERROR('#4: "\\u0004C" === String.fromCharCode("4") + "C"');
+}
+
+//CHECK#5
+if ("\u0005B" !== String.fromCharCode("5") + "B") {
+ $ERROR('#5: "\\u0005B" === String.fromCharCode("5") + "B"');
+}
+
+//CHECK#6
+if ("\u0006A" !== String.fromCharCode("6") + "A") {
+ $ERROR('#6: "\\u0006A" === String.fromCharCode("6") + "A"');
+}
+
+//CHECK#7
+if ("\u00079" !== String.fromCharCode("7") + "9") {
+ $ERROR('#7: "\\u00079" === String.fromCharCode("7") + "9"');
+}
+
+//CHECK#8
+if ("\u00088" !== String.fromCharCode("8") + "8") {
+ $ERROR('#8: "\\u00088" === String.fromCharCode("8") + "8"');
+}
+
+//CHECK#9
+if ("\u00097" !== String.fromCharCode("9") + "7") {
+ $ERROR('#9: "\\u00097" === String.fromCharCode("9") + "7"');
+}
+
+//CHECK#A
+if ("\u000A6" !== String.fromCharCode("10") + "6") {
+ $ERROR('#A: "\\u000A6" === String.fromCharCode("10") + "6"');
+}
+
+//CHECK#B
+if ("\u000B5" !== String.fromCharCode("11") + "5") {
+ $ERROR('#B: "\\u000B5" === String.fromCharCode("11") + "5"');
+}
+
+//CHECK#C
+if ("\u000C4" !== String.fromCharCode("12") + "4") {
+ $ERROR('#C: "\\u000C4" === String.fromCharCode("12") + "4"');
+}
+
+//CHECK#D
+if ("\u000D3" !== String.fromCharCode("13") + "3") {
+ $ERROR('#D: "\\u000D3" === String.fromCharCode("13") + "3"');
+}
+
+//CHECK#E
+if ("\u000E2" !== String.fromCharCode("14") + "2") {
+ $ERROR('#E: "\\u000E2" === String.fromCharCode("14") + "2"');
+}
+
+//CHECK#F
+if ("\u000F1" !== String.fromCharCode("15") + "1") {
+ $ERROR('#F: "\\u000F1" === String.fromCharCode("15") + "1"');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/browser.js b/js/src/tests/test262/ch07/7.8/7.8.4/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/browser.js
diff --git a/js/src/tests/test262/ch07/7.8/7.8.4/shell.js b/js/src/tests/test262/ch07/7.8/7.8.4/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.4/shell.js
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-1.js b/js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-1.js
new file mode 100644
index 000000000..a8fe6e29f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-1.js
@@ -0,0 +1,20 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch07/7.8/7.8.5/7.8.5-1.js
+ * @description Literal RegExp Objects - SyntaxError exception is thrown if the RegularExpressionNonTerminator position of a RegularExpressionBackslashSequence is a LineTerminator.
+ */
+
+
+function testcase() {
+ try {
+ eval("var regExp = /\\\rn/;");
+ return false;
+ } catch (e) {
+ return e instanceof SyntaxError;
+ }
+ }
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-1gs.js b/js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-1gs.js
new file mode 100644
index 000000000..4b22a6193
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-1gs.js
@@ -0,0 +1,15 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+
+/**
+ * @path ch07/7.8/7.8.5/7.8.5-1gs.js
+ * @description Empty literal RegExp should result in a SyntaxError
+ * @negative ^((?!NotEarlyError).)*$
+ */
+
+throw NotEarlyError;
+var re = //;
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-2gs.js b/js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-2gs.js
new file mode 100644
index 000000000..b67638b03
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/7.8.5-2gs.js
@@ -0,0 +1,13 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+
+/**
+ * @path ch07/7.8/7.8.5/7.8.5-2gs.js
+ * @description Empty dynamic RegExp should not result in a SyntaxError
+ */
+
+var re = new RegExp("");
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.1_T1.js
new file mode 100644
index 000000000..638177170
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.1_T1.js
@@ -0,0 +1,36 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: NonTerminator but not * or \ or /,
+ * RegularExpressionChars :: [empty], RegularExpressionFlags :: [empty]
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.1_T1.js
+ * @description Without eval
+ */
+
+//CHECK#1
+if (/1/.source !== "1") {
+ $ERROR('#1: /1/');
+}
+
+//CHECK#2
+if (/a/.source !== "a") {
+ $ERROR('#2: /a/');
+}
+
+//CHECK#3
+if (/;/.source !== ";") {
+ $ERROR('#3: /;/');
+}
+
+//CHECK#4
+if (/ /.source !== " ") {
+ $ERROR('#4: / /');
+}
+
+//CHECK#5
+if (/\u0041/.source !== "\\u0041") {
+ $ERROR('#5: /\\u0041/');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.1_T2.js
new file mode 100644
index 000000000..e46d2e24d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.1_T2.js
@@ -0,0 +1,55 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: NonTerminator but not * or \ or /,
+ * RegularExpressionChars :: [empty], RegularExpressionFlags :: [empty]
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.1_T2.js
+ * @description Complex test with eval, using syntax pattern
+ */
+
+//CHECK
+var errorCount = 0;
+var count = 0;
+var hex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
+for (var i1 = 0; i1 < 16; i1++) {
+ for (var i2 = 0; i2 < 16; i2++) {
+ for (var i3 = 0; i3 < 16; i3++) {
+ for (var i4 = 0; i4 < 16; i4++) {
+ try {
+ var uu = hex[i1] + hex[i2] + hex[i3] + hex[i4];
+ var Elimination =
+ ((uu === "002A") || (uu === "002F") || (uu === "005C") || (uu === "002B") ||
+ (uu === "003F") || (uu === "0028") || (uu === "0029") ||
+ (uu === "005B") || (uu === "005D") || (uu === "007B") || (uu === "007D"));
+ /*
+ * \u002A / \u002F \ \u005C + \u002B
+ ? \u003F ( \u0028 ) \u0029
+ [ \u005B ] \u005D { \u007B } \u007D
+ */
+ var LineTerminator = ((uu === "000A") || (uu === "000D") || (uu === "2028") || (uu === "2029"));
+ if ((Elimination || LineTerminator ) === false) {
+ var xx = String.fromCharCode("0x" + uu);
+ var pattern = eval("/" + xx + "/");
+ if (pattern.source !== xx) {
+ $ERROR('#' + uu + ' ');
+ errorCount++;
+ }
+ } else {
+ count--;
+ }
+ } catch (e) {
+ $ERROR('#' + uu + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+ }
+ }
+}
+
+if (errorCount > 0) {
+ $ERROR('Total error: ' + errorCount + ' bad Regular Expression First Char in ' + count);
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T1.js
new file mode 100644
index 000000000..d7013d049
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: * or \ or / or [empty] is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.2_T1.js
+ * @description *
+ * @negative
+ */
+
+//CHECK#1
+/*/
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T2.js
new file mode 100644
index 000000000..b050d8c53
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: * or \ or / or [empty] is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.2_T2.js
+ * @description \
+ * @negative
+ */
+
+//CHECK#1
+/\/
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T3.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T3.js
new file mode 100644
index 000000000..abd943bac
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T3.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: * or \ or / or [empty] is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.2_T3.js
+ * @description /
+ * @negative
+ */
+
+//CHECK#1
+///
+.source;
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T4.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T4.js
new file mode 100644
index 000000000..6d341f991
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.2_T4.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: * or \ or / or [empty] is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.2_T4.js
+ * @description [empty]
+ * @negative
+ */
+
+//CHECK#1
+//
+.source;
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T1.js
new file mode 100644
index 000000000..4fdba3e4c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T1.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.3_T1.js
+ * @description Line Feed, without eval
+ * @negative
+ */
+
+//CHECK#1
+/
+/
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T2.js
new file mode 100644
index 000000000..a2ac51235
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T2.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.3_T2.js
+ * @description Line Feed, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/\u000A/").source;
+ $ERROR('#1.1: RegularExpressionFirstChar :: Line Feed is incorrect. Actual: ' + (eval("/\u000A/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionFirstChar :: Line Feed is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T3.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T3.js
new file mode 100644
index 000000000..95d7ebcd6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T3.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.3_T3.js
+ * @description Carriage Return, without eval
+ * @negative
+ */
+
+//CHECK#1
+/
+/
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T4.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T4.js
new file mode 100644
index 000000000..638eecf69
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T4.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.3_T4.js
+ * @description Carriage Return, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/\u000D/").source;
+ $ERROR('#1.1: RegularExpressionFirstChar :: Carriage Return is incorrect. Actual: ' + (eval("/\u000D/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionFirstChar :: Carriage Return is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T5.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T5.js
new file mode 100644
index 000000000..c621df543
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T5.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.3_T5.js
+ * @description Line separator, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/\u2028/").source;
+ $ERROR('#1.1: RegularExpressionFirstChar :: Line separator is incorrect. Actual: ' + (eval("/\u2028/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionFirstChar :: Line separator is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T6.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T6.js
new file mode 100644
index 000000000..1ad88db22
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.3_T6.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.3_T6.js
+ * @description Paragraph separator, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/\u2029/").source;
+ $ERROR('#1.1: RegularExpressionFirstChar :: Paragraph separator is incorrect. Actual: ' + (eval("/\u2029/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionFirstChar :: Paragraph separator is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.4_T1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.4_T1.js
new file mode 100644
index 000000000..0c87e0b3d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.4_T1.js
@@ -0,0 +1,31 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: BackslashSequence :: \NonTerminator,
+ * RegularExpressionChars :: [empty], RegularExpressionFlags :: [empty]
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.4_T1.js
+ * @description Check similar to (/\1/.source === "\\1")
+ */
+
+//CHECK#1
+if (/\1/.source !== "\\1") {
+ $ERROR('#1: /\\1/');
+}
+
+//CHECK#2
+if (/\a/.source !== "\\a") {
+ $ERROR('#2: /\\a/');
+}
+
+//CHECK#3
+if (/\;/.source !== "\\;") {
+ $ERROR('#3: /\\;/');
+}
+
+//CHECK#4
+if (/\ /.source !== "\\ ") {
+ $ERROR('#4: /\\ /');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.4_T2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.4_T2.js
new file mode 100644
index 000000000..f17d8332a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.4_T2.js
@@ -0,0 +1,55 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: BackslashSequence :: \NonTerminator,
+ * RegularExpressionChars :: [empty], RegularExpressionFlags :: [empty]
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.4_T2.js
+ * @description Complex test with eval, using syntax pattern
+ */
+
+//CHECK
+var errorCount = 0;
+var count = 0;
+var hex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
+for (var i1 = 0; i1 < 16; i1++) {
+ for (var i2 = 0; i2 < 16; i2++) {
+ for (var i3 = 0; i3 < 16; i3++) {
+ for (var i4 = 0; i4 < 16; i4++) {
+ try {
+ var uu = hex[i1] + hex[i2] + hex[i3] + hex[i4];
+ var Elimination =
+ ((uu === "002A") || (uu === "002F") || (uu === "005C") || (uu === "002B") ||
+ (uu === "003F") || (uu === "0028") || (uu === "0029") ||
+ (uu === "005B") || (uu === "005D") || (uu === "007B") || (uu === "007D"));
+ /*
+ * \u002A / \u002F \ \u005C + \u002B
+ ? \u003F ( \u0028 ) \u0029
+ [ \u005B ] \u005D { \u007B } \u007D
+ */
+ var LineTerminator = ((uu === "000A") || (uu === "000D") || (uu === "2028") || (uu === "2029"));
+ if ((Elimination || LineTerminator ) === false) {
+ var xx = "\\" + String.fromCharCode("0x" + uu);
+ var pattern = eval("/" + xx + "/");
+ if (pattern.source !== xx) {
+ $ERROR('#' + uu + ' ');
+ errorCount++;
+ }
+ } else {
+ count--;
+ }
+ } catch (e) {
+ $ERROR('#' + uu + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+ }
+ }
+}
+
+if (errorCount > 0) {
+ $ERROR('Total error: ' + errorCount + ' bad Regular Expression First Char in ' + count);
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T1.js
new file mode 100644
index 000000000..94a9734d0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T1.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.5_T1.js
+ * @description Line Feed, without eval
+ * @negative
+ */
+
+//CHECK#1
+/\
+/
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T2.js
new file mode 100644
index 000000000..923e3f737
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T2.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.5_T2.js
+ * @description Line Feed, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/\\\u000A/").source;
+ $ERROR('#1.1: RegularExpressionFirstChar :: BackslashSequence :: \\Line Feed is incorrect. Actual: ' + (eval("/\\\u000A/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionFirstChar :: BackslashSequence :: \\Line Feed is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T3.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T3.js
new file mode 100644
index 000000000..3c349c10b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T3.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.5_T3.js
+ * @description Carriage Return, without eval
+ * @negative
+ */
+
+//CHECK#1
+/\
+/
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T4.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T4.js
new file mode 100644
index 000000000..e5b89920a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T4.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.5_T4.js
+ * @description Carriage Return, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/\\\u000D/").source;
+ $ERROR('#1.1: RegularExpressionFirstChar :: BackslashSequence :: \\Carriage Return is incorrect. Actual: ' + (eval("/\\\u000D/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionFirstChar :: BackslashSequence :: \\Carriage Return is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T5.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T5.js
new file mode 100644
index 000000000..a9b6d9696
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T5.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.5_T5.js
+ * @description Line separator, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/\\\u2028/").source;
+ $ERROR('#1.1: RegularExpressionFirstChar :: BackslashSequence :: \\Line separator is incorrect. Actual: ' + (eval("/\\\u2028/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionFirstChar :: BackslashSequence :: \\Line separator is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T6.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T6.js
new file mode 100644
index 000000000..73345ed41
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A1.5_T6.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFirstChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A1.5_T6.js
+ * @description Paragraph separator, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/\\\u2029/").source;
+ $ERROR('#1.1: RegularExpressionFirstChar :: BackslashSequence :: \\Paragraph separator is incorrect. Actual: ' + (eval("/\\\u2029/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionFirstChar :: BackslashSequence :: \\Paragraph separator is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.1_T1.js
new file mode 100644
index 000000000..5b69da20d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.1_T1.js
@@ -0,0 +1,36 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: NonTerminator but not \ or /,
+ * RegularExpressionFlags :: [empty]
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.1_T1.js
+ * @description Without eval
+ */
+
+//CHECK#1
+if (/1a/.source !== "1a") {
+ $ERROR('#1: /1a/');
+}
+
+//CHECK#2
+if (/aa/.source !== "aa") {
+ $ERROR('#2: /aa/');
+}
+
+//CHECK#3
+if (/,;/.source !== ",;") {
+ $ERROR('#3: /,;/');
+}
+
+//CHECK#4
+if (/ /.source !== " ") {
+ $ERROR('#4: / /');
+}
+
+//CHECK#5
+if (/a\u0041/.source !== "a\\u0041") {
+ $ERROR('#5: /a\\u0041/');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.1_T2.js
new file mode 100644
index 000000000..b8e66b23e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.1_T2.js
@@ -0,0 +1,56 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: NonTerminator but not \ or /,
+ * RegularExpressionFlags :: [empty]
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.1_T2.js
+ * @description Complex test with eval, using syntax pattern
+ */
+
+//CHECK
+var errorCount = 0;
+var count = 0;
+var hex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
+for (var i1 = 0; i1 < 16; i1++) {
+ for (var i2 = 0; i2 < 16; i2++) {
+ for (var i3 = 0; i3 < 16; i3++) {
+ for (var i4 = 0; i4 < 16; i4++) {
+ try {
+ var uu = hex[i1] + hex[i2] + hex[i3] + hex[i4];
+ var Elimination =
+ ((uu === "002A") || (uu === "002F") || (uu === "005C") || (uu === "002B") ||
+ (uu === "003F") || (uu === "0028") || (uu === "0029") ||
+ (uu === "005B") || (uu === "005D") || (uu === "007B") || (uu === "007D"));
+ /*
+ * \u002A / \u002F \ \u005C + \u002B
+ ? \u003F ( \u0028 ) \u0029
+ [ \u005B ] \u005D { \u007B } \u007D
+ */
+ var LineTerminator = ((uu === "000A") || (uu === "000D") || (uu === "2028") || (uu === "2029"));
+ if ((Elimination || LineTerminator ) === false) {
+ var xx = "nnnn" + String.fromCharCode("0x" + uu);
+ var pattern = eval("/" + xx + "/");
+ if (pattern.source !== xx) {
+ $ERROR('#' + uu + ' ');
+ errorCount++;
+ }
+
+ } else {
+ count--;
+ }
+ } catch (e) {
+ $ERROR('#' + uu + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+ }
+ }
+}
+
+if (errorCount > 0) {
+ $ERROR('Total error: ' + errorCount + ' bad Regular Expression First Char in ' + count);
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.2_T1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.2_T1.js
new file mode 100644
index 000000000..8231c0407
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.2_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: \ or / is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.2_T1.js
+ * @description \
+ * @negative
+ */
+
+//CHECK#1
+/a\/
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.2_T2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.2_T2.js
new file mode 100644
index 000000000..b80f21691
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.2_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: \ or / is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.2_T2.js
+ * @description /
+ * @negative
+ */
+
+//CHECK#1
+/a//.source;
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T1.js
new file mode 100644
index 000000000..fd42341e0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T1.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.3_T1.js
+ * @description Line Feed, without eval
+ * @negative
+ */
+
+//CHECK#1
+/a
+/
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T2.js
new file mode 100644
index 000000000..8f3523088
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T2.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.3_T2.js
+ * @description Line Feed, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/a\u000A/").source;
+ $ERROR('#1.1: RegularExpressionChar :: Line Feedis incorrect. Actual: ' + (eval("/a\u000A/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionChar :: Line Feed is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T3.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T3.js
new file mode 100644
index 000000000..c9debb5c5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T3.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.3_T3.js
+ * @description Carriage Return, without eval
+ * @negative
+ */
+
+//CHECK#1
+/a
+/
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T4.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T4.js
new file mode 100644
index 000000000..4c2dda384
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T4.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.3_T4.js
+ * @description Carriage Return, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/a\u000D/").source;
+ $ERROR('#1.1: RegularExpressionChar :: Carriage Retur is incorrect. Actual: ' + (eval("/a\u000D/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionChar :: Carriage Retur is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T5.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T5.js
new file mode 100644
index 000000000..85d43801f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T5.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.3_T5.js
+ * @description Line separator, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/a\u2028/").source;
+ $ERROR('#1.1: RegularExpressionChar :: Line separator is incorrect. Actual: ' + (eval("/a\u2028/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionChar :: Line separator is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T6.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T6.js
new file mode 100644
index 000000000..abf9833c5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.3_T6.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.3_T6.js
+ * @description Paragraph separator, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/s\u2029/").source;
+ $ERROR('#1.1: RegularExpressionChar :: Paragraph separator is incorrect. Actual: ' + (eval("/s\u2029/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionChar :: Paragraph separator is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.4_T1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.4_T1.js
new file mode 100644
index 000000000..8a67dc42a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.4_T1.js
@@ -0,0 +1,31 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: BackslashSequence :: \NonTerminator,
+ * RegularExpressionFlags :: [empty]
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.4_T1.js
+ * @description Check similar to (/a\1/.source === "a\\1")
+ */
+
+//CHECK#1
+if (/a\1/.source !== "a\\1") {
+ $ERROR('#1: /a\\1/');
+}
+
+//CHECK#2
+if (/a\a/.source !== "a\\a") {
+ $ERROR('#2: /a\\a/');
+}
+
+//CHECK#3
+if (/,\;/.source !== ",\\;") {
+ $ERROR('#3: /,\\;/');
+}
+
+//CHECK#4
+if (/ \ /.source !== " \\ ") {
+ $ERROR('#4: / \\ /');
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.4_T2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.4_T2.js
new file mode 100644
index 000000000..fa26a976b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.4_T2.js
@@ -0,0 +1,55 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: BackslashSequence :: \NonTerminator,
+ * RegularExpressionFlags :: [empty]
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.4_T2.js
+ * @description Complex test with eval, using syntax pattern
+ */
+
+//CHECK
+var errorCount = 0;
+var count = 0;
+var hex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
+for (var i1 = 0; i1 < 16; i1++) {
+ for (var i2 = 0; i2 < 16; i2++) {
+ for (var i3 = 0; i3 < 16; i3++) {
+ for (var i4 = 0; i4 < 16; i4++) {
+ try {
+ var uu = hex[i1] + hex[i2] + hex[i3] + hex[i4];
+ var Elimination =
+ ((uu === "002A") || (uu === "002F") || (uu === "005C") || (uu === "002B") ||
+ (uu === "003F") || (uu === "0028") || (uu === "0029") ||
+ (uu === "005B") || (uu === "005D") || (uu === "007B") || (uu === "007D"));
+ /*
+ * \u002A / \u002F \ \u005C + \u002B
+ ? \u003F ( \u0028 ) \u0029
+ [ \u005B ] \u005D { \u007B } \u007D
+ */
+ var LineTerminator = ((uu === "000A") || (uu === "000D") || (uu === "2028") || (uu === "2029"));
+ if ((Elimination || LineTerminator ) === false) {
+ var xx = "a\\" + String.fromCharCode("0x" + uu);
+ var pattern = eval("/" + xx + "/");
+ if (pattern.source !== xx) {
+ $ERROR('#' + uu + ' ');
+ errorCount++;
+ }
+ } else {
+ count--;
+ }
+ } catch (e) {
+ $ERROR('#' + uu + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+ }
+ }
+}
+
+if (errorCount > 0) {
+ $ERROR('Total error: ' + errorCount + ' bad Regular Expression First Char in ' + count);
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T1.js
new file mode 100644
index 000000000..a3d5e5b4e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T1.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.5_T1.js
+ * @description Line Feed, without eval
+ * @negative
+ */
+
+//CHECK#1
+/a\
+/
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T2.js
new file mode 100644
index 000000000..685ada093
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T2.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.5_T2.js
+ * @description Line Feed, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/a\\\u000A/").source;
+ $ERROR('#1.1: RegularExpressionChar :: BackslashSequence :: \\Line Feed is incorrect. Actual: ' + (eval("/a\\\u000A/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionChar :: BackslashSequence :: \\Line Feed is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T3.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T3.js
new file mode 100644
index 000000000..e85821870
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T3.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.5_T3.js
+ * @description Carriage Return, without eval
+ * @negative
+ */
+
+//CHECK#1
+/a\
+/
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T4.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T4.js
new file mode 100644
index 000000000..5cdea0817
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T4.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.5_T4.js
+ * @description Carriage Return, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/a\\\u000D/").source;
+ $ERROR('#1.1: RegularExpressionChar :: BackslashSequence :: \\Carriage Return is incorrect. Actual: ' + (eval("/a\\\u000D/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionChar :: BackslashSequence :: \\Carriage Return is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T5.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T5.js
new file mode 100644
index 000000000..acc1f3080
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T5.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.5_T5.js
+ * @description Line separator, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/a\\\u2028/").source;
+ $ERROR('#1.1: RegularExpressionChar :: BackslashSequence :: \\Line separator is incorrect. Actual: ' + (eval("/a\\\u2028/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionChar :: BackslashSequence :: \\Line separator is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T6.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T6.js
new file mode 100644
index 000000000..d33041021
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A2.5_T6.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionChar :: BackslashSequence :: \LineTerminator is incorrect
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A2.5_T6.js
+ * @description Paragraph separator, with eval
+ */
+
+//CHECK#1
+try {
+ eval("/a\\\u2029/").source;
+ $ERROR('#1.1: RegularExpressionChar :: BackslashSequence :: \\Paragraph separator is incorrect. Actual: ' + (eval("/a\\\u2029/").source));
+}
+catch (e) {
+ if ((e instanceof SyntaxError) !== true) {
+ $ERROR('#1.2: RegularExpressionChar :: BackslashSequence :: \\Paragraph separator is incorrect. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T1.js
new file mode 100644
index 000000000..14ea4d7ea
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T1.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFlags :: IdentifierPart
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A3.1_T1.js
+ * @description IdentifierPart :: g
+ */
+
+//CHECK#1
+var regexp = /(?:)/g;
+if (regexp.global !== true) {
+ $ERROR('#1: var regexp = /(?:)/g; regexp.global === true. Actual: ' + (regexp.global));
+}
+
+//CHECK#2
+if (regexp.ignoreCase !== false) {
+ $ERROR('#2: var regexp = /(?:)/g; regexp.ignoreCase === false. Actual: ' + (regexp.ignoreCase));
+}
+
+//CHECK#3
+if (regexp.multiline !== false) {
+ $ERROR('#3: var regexp = /(?:)/g; regexp.multiline === false. Actual: ' + (regexp.multiline));
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T2.js
new file mode 100644
index 000000000..f247140d2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T2.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFlags :: IdentifierPart
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A3.1_T2.js
+ * @description IdentifierPart :: i
+ */
+
+//CHECK#1
+var regexp = /(?:)/i;
+if (regexp.global !== false) {
+ $ERROR('#1: var regexp = /(?:)/g; regexp.global === false. Actual: ' + (regexp.global));
+}
+
+//CHECK#2
+if (regexp.ignoreCase !== true) {
+ $ERROR('#2: var regexp = /(?:)/g; regexp.ignoreCase === true. Actual: ' + (regexp.ignoreCase));
+}
+
+//CHECK#3
+if (regexp.multiline !== false) {
+ $ERROR('#3: var regexp = /(?:)/g; regexp.multiline === false. Actual: ' + (regexp.multiline));
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T3.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T3.js
new file mode 100644
index 000000000..4f0e6f14d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T3.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFlags :: IdentifierPart
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A3.1_T3.js
+ * @description IdentifierPart :: m
+ */
+
+//CHECK#1
+var regexp = /(?:)/m;
+if (regexp.global !== false) {
+ $ERROR('#1: var regexp = /(?:)/g; regexp.global === false. Actual: ' + (regexp.global));
+}
+
+//CHECK#2
+if (regexp.ignoreCase !== false) {
+ $ERROR('#2: var regexp = /(?:)/g; regexp.ignoreCase === false. Actual: ' + (regexp.ignoreCase));
+}
+
+//CHECK#3
+if (regexp.multiline !== true) {
+ $ERROR('#3: var regexp = /(?:)/g; regexp.multiline === true. Actual: ' + (regexp.multiline));
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T4.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T4.js
new file mode 100644
index 000000000..fd56ca01c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T4.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFlags :: IdentifierPart
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A3.1_T4.js
+ * @description IdentifierPart :: gi
+ */
+
+//CHECK#1
+var regexp = /(?:)/gi;
+if (regexp.global !== true) {
+ $ERROR('#1: var regexp = /(?:)/g; regexp.global === true. Actual: ' + (regexp.global));
+}
+
+//CHECK#2
+if (regexp.ignoreCase !== true) {
+ $ERROR('#2: var regexp = /(?:)/g; regexp.ignoreCase === true. Actual: ' + (regexp.ignoreCase));
+}
+
+//CHECK#3
+if (regexp.multiline !== false) {
+ $ERROR('#3: var regexp = /(?:)/g; regexp.multiline === false. Actual: ' + (regexp.multiline));
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T5.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T5.js
new file mode 100644
index 000000000..3b45a94ca
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T5.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFlags :: IdentifierPart
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A3.1_T5.js
+ * @description IdentifierPart :: mg
+ */
+
+//CHECK#1
+var regexp = /(?:)/mg;
+if (regexp.global !== true) {
+ $ERROR('#1: var regexp = /(?:)/g; regexp.global === true. Actual: ' + (regexp.global));
+}
+
+//CHECK#2
+if (regexp.ignoreCase !== false) {
+ $ERROR('#2: var regexp = /(?:)/g; regexp.ignoreCase === false. Actual: ' + (regexp.ignoreCase));
+}
+
+//CHECK#3
+if (regexp.multiline !== true) {
+ $ERROR('#3: var regexp = /(?:)/g; regexp.multiline === true. Actual: ' + (regexp.multiline));
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T6.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T6.js
new file mode 100644
index 000000000..fb188ed6c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T6.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFlags :: IdentifierPart
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A3.1_T6.js
+ * @description IdentifierPart :: mig
+ */
+
+//CHECK#1
+var regexp = /(?:)/mig;
+if (regexp.global !== true) {
+ $ERROR('#1: var regexp = /(?:)/g; regexp.global === true. Actual: ' + (regexp.global));
+}
+
+//CHECK#2
+if (regexp.ignoreCase !== true) {
+ $ERROR('#2: var regexp = /(?:)/g; regexp.ignoreCase === true. Actual: ' + (regexp.ignoreCase));
+}
+
+//CHECK#3
+if (regexp.multiline !== true) {
+ $ERROR('#3: var regexp = /(?:)/g; regexp.multiline === true. Actual: ' + (regexp.multiline));
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T7.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T7.js
new file mode 100644
index 000000000..299241d4c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T7.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFlags :: IdentifierPart
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A3.1_T7.js
+ * @description IdentifierPart :: \u0067 (g)
+ */
+
+//CHECK#1
+var regexp;
+eval("regexp = /(?:)/\u0067");
+if (regexp.global !== true) {
+ $ERROR('#1: var regexp = /(?:)/\\u0067; regexp.global === true. Actual: ' + (regexp.global));
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T8.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T8.js
new file mode 100644
index 000000000..de78b6f23
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T8.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFlags :: IdentifierPart
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A3.1_T8.js
+ * @description IdentifierPart :: \u0069 (i)
+ */
+
+//CHECK#1
+var regexp;
+eval("regexp = /(?:)/\u0069");
+if (regexp.ignoreCase !== true) {
+ $ERROR('#1: var regexp = /(?:)/\\u0069; regexp.ignoreCase === true. Actual: ' + (regexp.ignoreCase));
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T9.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T9.js
new file mode 100644
index 000000000..132586af4
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A3.1_T9.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * RegularExpressionFlags :: IdentifierPart
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A3.1_T9.js
+ * @description IdentifierPart :: \u006D (m)
+ */
+
+//CHECK#1
+var regexp;
+eval("regexp = /(?:)/\u006D");
+if (regexp.multiline !== true) {
+ $ERROR('#1: var regexp = /(?:)/\\u006D; regexp.multiline === true. Actual: ' + (regexp.multiline));
+}
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A4.1.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A4.1.js
new file mode 100644
index 000000000..d8f33d67d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A4.1.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * A regular expression literal is an input element that is converted to
+ * a RegExp object when it is scanned
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A4.1.js
+ * @description Check ((/(?:)/ instanceof RegExp) === true)
+ */
+
+//CHECK#1
+if ((/(?:)/ instanceof RegExp) !== true) {
+ $ERROR('#1: (/(?:)/ instanceof RegExp) === true. Actual: ' + ((/(?:)/ instanceof RegExp)));
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A4.2.js b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A4.2.js
new file mode 100644
index 000000000..569e4cbd2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/S7.8.5_A4.2.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Two regular expression literals in a program evaluate to
+ * regular expression objects that never compare as === to each other even
+ * if the two literals' contents are identical
+ *
+ * @path ch07/7.8/7.8.5/S7.8.5_A4.2.js
+ * @description Check equality two regular expression literals
+ */
+
+//CHECK#1
+var regexp1 = /(?:)/;
+var regexp2 = /(?:)/;
+if (regexp1 === regexp2) {
+ $ERROR('#1: var regexp1 = /(?:)/; var regexp2 = /(?:)/; regexp1 !== regexp2');
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/browser.js b/js/src/tests/test262/ch07/7.8/7.8.5/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/browser.js
diff --git a/js/src/tests/test262/ch07/7.8/7.8.5/shell.js b/js/src/tests/test262/ch07/7.8/7.8.5/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/7.8.5/shell.js
diff --git a/js/src/tests/test262/ch07/7.8/browser.js b/js/src/tests/test262/ch07/7.8/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/browser.js
diff --git a/js/src/tests/test262/ch07/7.8/shell.js b/js/src/tests/test262/ch07/7.8/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.8/shell.js
diff --git a/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T1.js b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T1.js
new file mode 100644
index 000000000..566fbbf47
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check examples for automatic semicolon insertion from the Standart
+ *
+ * @path ch07/7.9/7.9.2/S7.9.2_A1_T1.js
+ * @description { 1 2 } 3 is not a valid sentence in the ECMAScript grammar
+ * @negative
+ */
+
+//CHECK#1
+{ 1 2 } 3
+
diff --git a/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T2.js b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T2.js
new file mode 100644
index 000000000..565d860a2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check examples for automatic semicolon insertion from the Standart
+ *
+ * @path ch07/7.9/7.9.2/S7.9.2_A1_T2.js
+ * @description { 1 \n 2 } 3 is a valid sentence in the ECMAScript grammar with automatic semicolon insertion
+ */
+
+//CHECK#1
+{ 1
+2 } 3
+
diff --git a/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T3.js b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T3.js
new file mode 100644
index 000000000..ab0d03265
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T3.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check examples for automatic semicolon insertion from the Standart
+ *
+ * @path ch07/7.9/7.9.2/S7.9.2_A1_T3.js
+ * @description for( a ; b \n ) is not a valid sentence in the ECMAScript grammar
+ * @negative
+ */
+
+//CHECK#1
+for( a ; b
+)
+
diff --git a/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T4.js b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T4.js
new file mode 100644
index 000000000..e4c39798a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T4.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check examples for automatic semicolon insertion from the Standart
+ *
+ * @path ch07/7.9/7.9.2/S7.9.2_A1_T4.js
+ * @description return \n a+b is a valid sentence in the ECMAScript grammar
+ * with automatic semicolon insertion, but returned undefined
+ */
+
+//CHECK#1
+var a=1,b=2;
+function test(){
+ return
+ a+b
+}
+var x=test();
+if (x!==undefined) $ERROR('#1: Automatic semicolon insertion not work with return');
+
diff --git a/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T5.js b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T5.js
new file mode 100644
index 000000000..3ca074a17
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T5.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check examples for automatic semicolon insertion from the Standart
+ *
+ * @path ch07/7.9/7.9.2/S7.9.2_A1_T5.js
+ * @description a=b \n ++c is a valid sentence in the ECMAScript grammar
+ * with automatic semicolon insertion, but a!==b++c
+ */
+
+//CHECK#1
+var a=1,b=2,c=3;
+a=b
+++c
+
+if (a!==b) $ERROR('#1: Automatic semicolon insertion not work with ++');
+
diff --git a/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T6.js b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T6.js
new file mode 100644
index 000000000..8284f932a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T6.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check examples for automatic semicolon insertion from the Standart
+ *
+ * @path ch07/7.9/7.9.2/S7.9.2_A1_T6.js
+ * @description if(a>b) \n else c=d is not a valid sentence in the ECMAScript grammar
+ * @negative
+ */
+
+//CHECK#1
+var a=1,b=2,c=3,d;
+if(a>b)
+else c=d
+
diff --git a/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T7.js b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T7.js
new file mode 100644
index 000000000..b2e1697bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/7.9.2/S7.9.2_A1_T7.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check examples for automatic semicolon insertion from the Standart
+ *
+ * @path ch07/7.9/7.9.2/S7.9.2_A1_T7.js
+ * @description a=b+c \n (d+e).print() is a valid sentence in the ECMAScript grammar,
+ * and automatic semicolon insertion not run
+ */
+
+//CHECK#1
+function c (a){
+ return 2*a;
+}
+
+var a=1,b=2,d=4,e=5;
+
+a=b+c
+(d+e)
+
+if (a !== 20) $ERROR('#1: Automatic semicolon insertion work wrong');
+
diff --git a/js/src/tests/test262/ch07/7.9/7.9.2/browser.js b/js/src/tests/test262/ch07/7.9/7.9.2/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/7.9.2/browser.js
diff --git a/js/src/tests/test262/ch07/7.9/7.9.2/shell.js b/js/src/tests/test262/ch07/7.9/7.9.2/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/7.9.2/shell.js
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A1.js b/js/src/tests/test262/ch07/7.9/S7.9_A1.js
new file mode 100644
index 000000000..47b1453b5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A1.js
@@ -0,0 +1,38 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Continue Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A1.js
+ * @description Try use continue \n Label construction
+ */
+
+//CHECK#1
+label1: for (var i = 0; i <= 0; i++) {
+ for (var j = 0; j <= 1; j++) {
+ if (j === 0) {
+ continue label1;
+ } else {
+ $ERROR('#1: Check continue statement for automatic semicolon insertion');
+ }
+ }
+}
+
+//CHECK#2
+var result = false;
+label2: for (var i = 0; i <= 1; i++) {
+ for (var j = 0; j <= 1; j++) {
+ if (j === 0) {
+ continue
+ label2;
+ } else {
+ result = true;
+ }
+ }
+}
+
+if (result !== true) {
+ $ERROR('#2: Check continue statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T1.js
new file mode 100644
index 000000000..6b884101e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T1.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T1.js
+ * @description Checking if execution of "1 * {}" passes
+ */
+
+//CHECK#1
+1 * {}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T10.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T10.js
new file mode 100644
index 000000000..b1fff1247
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T10.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T10.js
+ * @description Checking if execution of "{a:1 \n} 3" passes
+ */
+
+//CHECK#1
+{a:1
+} 3
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T11.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T11.js
new file mode 100644
index 000000000..0b28b5e11
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T11.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T11.js
+ * @description Checking if execution of "{a:1 \n} \n 3" passes
+ */
+
+//CHECK#1
+{a:1
+}
+3
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T12.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T12.js
new file mode 100644
index 000000000..600aaa5ac
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T12.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T12.js
+ * @description Checking if execution of "{ \n a: \n 1 \n } \n 3" passes
+ */
+
+//CHECK#1
+{
+a:
+1
+}
+3
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T2.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T2.js
new file mode 100644
index 000000000..762a4a910
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T2.js
+ * @description Checking if execution of "{}*1" fails
+ * @negative
+ */
+
+//CHECK#1
+{} * 1
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T3.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T3.js
new file mode 100644
index 000000000..902631481
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T3.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T3.js
+ * @description Checking if execution of "({}) * 1" passes
+ */
+
+//CHECK#1
+({}) * 1
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T4.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T4.js
new file mode 100644
index 000000000..fcd18b665
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T4.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T4.js
+ * @description Checking if execution of "({};)*1" fails
+ * @negative
+ */
+
+//CHECK#1
+({};) * 1
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T5.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T5.js
new file mode 100644
index 000000000..47b59d8c0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T5.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T5.js
+ * @description Checking if execution of "( \n {} \n ) * 1" passes
+ */
+
+//CHECK#1
+(
+ {}
+) * 1
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T6.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T6.js
new file mode 100644
index 000000000..e900fc8c5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T6.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T6.js
+ * @description Checking if execution of "{} \n * 1" fails
+ * @negative
+ */
+
+//CHECK#1
+{}
+ * 1
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T7.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T7.js
new file mode 100644
index 000000000..7cc00a70e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T7.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T7.js
+ * @description Checking if execution of "{1} 2" passes
+ */
+
+//CHECK#1
+{1} 2
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T8.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T8.js
new file mode 100644
index 000000000..08b3fe564
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T8.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T8.js
+ * @description Checking if execution of "{1 2} 3" fails
+ * @negative
+ */
+
+//CHECK#1
+{1 2} 3
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A10_T9.js b/js/src/tests/test262/ch07/7.9/S7.9_A10_T9.js
new file mode 100644
index 000000000..03daf8d9d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A10_T9.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check {} for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A10_T9.js
+ * @description Checking if execution of "{1 \n 2} 3" passes
+ */
+
+//CHECK#1
+{1
+2} 3
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A11_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A11_T1.js
new file mode 100644
index 000000000..7acebb81e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A11_T1.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check If Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A11_T1.js
+ * @description Use if (false) x = 1 (without semicolon) and check x
+ */
+
+//CHECK#1
+var x = 0;
+if (false) x = 1
+if (x !== 0) {
+ $ERROR('#1: Check If Statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A11_T10.js b/js/src/tests/test262/ch07/7.9/S7.9_A11_T10.js
new file mode 100644
index 000000000..d7304465b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A11_T10.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check If Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A11_T10.js
+ * @description Use if (false) {x = 1} else {x=-1} and check x
+ */
+
+//CHECK#1
+var x = 0;
+if (false) {x = 1} else {x = -1}
+if (x !== -1) {
+ $ERROR('#1: Check If Statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A11_T11.js b/js/src/tests/test262/ch07/7.9/S7.9_A11_T11.js
new file mode 100644
index 000000000..008a365bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A11_T11.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check If Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A11_T11.js
+ * @description Use if (false) {{x = 1};} \n else x=-1 and check x
+ */
+
+//CHECK#1
+var x = 0;
+if (false) {{x = 1};}
+else x = -1
+if (x !== -1) {
+ $ERROR('#1: Check If Statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A11_T2.js b/js/src/tests/test262/ch07/7.9/S7.9_A11_T2.js
new file mode 100644
index 000000000..bcb0ccd65
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A11_T2.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check If Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A11_T2.js
+ * @description Use if (false) \n x = 1 and check x
+ */
+
+//CHECK#1
+var x = 0;
+if (false)
+x = 1
+if (x !== 0) {
+ $ERROR('#1: Check If Statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A11_T3.js b/js/src/tests/test262/ch07/7.9/S7.9_A11_T3.js
new file mode 100644
index 000000000..12df0b4a9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A11_T3.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check If Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A11_T3.js
+ * @description Use if (false);\n x = 1 and check x
+ */
+
+//CHECK#1
+var x = 0;
+if (false);
+x = 1
+if (x !== 1) {
+ $ERROR('#1: Check If Statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A11_T4.js b/js/src/tests/test262/ch07/7.9/S7.9_A11_T4.js
new file mode 100644
index 000000000..d5ab788db
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A11_T4.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check If Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A11_T4.js
+ * @description Checking if execution of "if (false) x = 1 else x = -1" fails
+ * @negative
+ */
+
+//CHECK#1
+var x = 0;
+if (false) x = 1 else x = -1
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A11_T5.js b/js/src/tests/test262/ch07/7.9/S7.9_A11_T5.js
new file mode 100644
index 000000000..22cfac9cf
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A11_T5.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check If Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A11_T5.js
+ * @description Use if (false) x = 1; else x=-1 and check x
+ */
+
+//CHECK#1
+var x = 0;
+if (false) x = 1; else x = -1
+if (x !== -1) {
+ $ERROR('#1: Check If Statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A11_T6.js b/js/src/tests/test262/ch07/7.9/S7.9_A11_T6.js
new file mode 100644
index 000000000..b5555429c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A11_T6.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check If Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A11_T6.js
+ * @description Use if (false) x = 1 \n else x=-1 and check x
+ */
+
+//CHECK#1
+var x = 0;
+if (false) x = 1
+else x = -1
+if (x !== -1) {
+ $ERROR('#1: Check If Statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A11_T7.js b/js/src/tests/test262/ch07/7.9/S7.9_A11_T7.js
new file mode 100644
index 000000000..98fc0aea9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A11_T7.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check If Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A11_T7.js
+ * @description Use if (false) x = 1; \n else x=-1 and check x
+ */
+
+//CHECK#1
+var x = 0;
+if (false) x = 1;
+else x = -1
+if (x !== -1) {
+ $ERROR('#1: Check If Statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A11_T8.js b/js/src/tests/test262/ch07/7.9/S7.9_A11_T8.js
new file mode 100644
index 000000000..24d588152
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A11_T8.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check If Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A11_T8.js
+ * @description Use if (false) {x = 1}; \n else x=-1 and check x
+ * @negative
+ */
+
+//CHECK#1
+var x = 0;
+if (false) {x = 1};
+else x = -1
+if (x !== -1) {
+ $ERROR('#1: Check If Statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A11_T9.js b/js/src/tests/test262/ch07/7.9/S7.9_A11_T9.js
new file mode 100644
index 000000000..f0d6878fd
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A11_T9.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check If Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A11_T9.js
+ * @description Use if (false) {x = 1} \n else x=-1 and check x
+ */
+
+//CHECK#1
+var x = 0;
+if (false) {x = 1}
+else x = -1
+if (x !== -1) {
+ $ERROR('#1: Check If Statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A2.js b/js/src/tests/test262/ch07/7.9/S7.9_A2.js
new file mode 100644
index 000000000..fdc2189f9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A2.js
@@ -0,0 +1,32 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Break Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A2.js
+ * @description Try use break \n Label construction
+ */
+
+//CHECK#1
+label1: for (var i = 0; i <= 0; i++) {
+ for (var j = 0; j <= 0; j++) {
+ break label1;
+ }
+ $ERROR('#1: Check break statement for automatic semicolon insertion');
+}
+
+//CHECK#2
+var result = false;
+label2: for (var i = 0; i <= 0; i++) {
+ for (var j = 0; j <= 0; j++) {
+ break
+ label2;
+ }
+ result = true;
+}
+
+if (result !== true) {
+ $ERROR('#2: Check break statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A3.js b/js/src/tests/test262/ch07/7.9/S7.9_A3.js
new file mode 100644
index 000000000..e52b88760
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A3.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Return Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A3.js
+ * @description Try use return \n Expression construction
+ */
+
+//CHECK#1
+function f1()
+{
+ return 1;
+}
+if (f1() !== 1) {
+ $ERROR('#1: Check return statement for automatic semicolon insertion');
+}
+
+//CHECK#2
+function f2()
+{
+ return
+ 1;
+}
+if (f2() !== undefined) {
+ $ERROR('#2: Check return statement for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A4.js b/js/src/tests/test262/ch07/7.9/S7.9_A4.js
new file mode 100644
index 000000000..d8a5ac607
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A4.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Throw Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A4.js
+ * @description Try use Throw \n Expression construction
+ * @negative
+ */
+
+//CHECK#1
+try {
+ throw
+ 1;
+} catch(e) {
+}
+$ERROR('#1: Check throw statement for automatic semicolon insertion');
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.1_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.1_T1.js
new file mode 100644
index 000000000..b0c69d298
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.1_T1.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Postfix Increment Operator for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A5.1_T1.js
+ * @description Try use Variable \n ++ construction
+ * @negative
+ */
+
+//CHECK#1
+var x = 0;
+x
+++;
+$ERROR('#1: Check Postfix Increment Operator for automatic semicolon insertion');
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.2_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.2_T1.js
new file mode 100644
index 000000000..24fcf4e7c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.2_T1.js
@@ -0,0 +1,24 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Prefix Increment Operator for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A5.2_T1.js
+ * @description Try use Variable1 \n ++Variable2 construction
+ */
+
+//CHECK#1
+var x = 0;
+var y = 0;
+x
+++y
+if (x !== 0) {
+ $ERROR('#1: Check Prefix Increment Operator for automatic semicolon insertion');
+} else {
+ if (y !== 1) {
+ $ERROR('#2: Check Prefix Increment Operator for automatic semicolon insertion');
+ }
+}
+
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.3_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.3_T1.js
new file mode 100644
index 000000000..283e73879
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.3_T1.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Postfix Decrement Operator for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A5.3_T1.js
+ * @description Try use Variable \n -- construction
+ * @negative
+ */
+
+//CHECK#1
+var x = 1;
+x
+--;
+$ERROR('#1: Check Postfix Decrement Operator for automatic semicolon insertion');
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.4_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.4_T1.js
new file mode 100644
index 000000000..6d58c1f69
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.4_T1.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Prefix Decrement Operator for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A5.4_T1.js
+ * @description Try use Variable1 \n --Variable2 construction
+ */
+
+//CHECK#1
+var x = 1;
+var y = 1;
+x
+--y
+if (x !== 1) {
+ $ERROR('#1: Check Prefix Decrement Operator for automatic semicolon insertion');
+} else {
+ if (y !== 0) {
+ $ERROR('#1: Check Prefix Decrement Operator for automatic semicolon insertion');
+ }
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T1.js
new file mode 100644
index 000000000..872803b60
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Function Expression for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A5.5_T1.js
+ * @description Try use 1 + function_name\n(2 + 3) construction
+ */
+
+//CHECK#1
+function f(t) {
+ return t;
+}
+var x = 1 + f
+(2 + 3)
+if (x !== 6) {
+ $ERROR('#1: Check Function Expression for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T2.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T2.js
new file mode 100644
index 000000000..be29e1dca
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Function Expression for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A5.5_T2.js
+ * @description Try use function f(o) {o.x = 1; return o;}; \n (new Object()).x; construction
+ */
+
+//CHECK#1
+var result = function f(o) {o.x = 1; return o;};
+(new Object()).x;
+if (typeof result !== "function") {
+ $ERROR('#1: Check Function Expression for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T3.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T3.js
new file mode 100644
index 000000000..e3dc89b38
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T3.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Function Expression for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A5.5_T3.js
+ * @description Try use function f(o) {o.x = 1; return o;} \n (new Object()).x; construction
+ */
+
+//CHECK#1
+var result = function f(o) {o.x = 1; return o;}
+(new Object()).x;
+if (result !== 1) {
+ $ERROR('#1: Check Function Expression for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T4.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T4.js
new file mode 100644
index 000000000..a005f1109
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T4.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Function Expression for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A5.5_T4.js
+ * @description Insert some LineTerminators into function body
+ */
+
+//CHECK#1
+var x =
+1 + (function (t){return {a:t
+}
+})
+(2 + 3).
+a
+
+if (x !== 6) {
+ $ERROR('#1: Check Function Expression for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T5.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T5.js
new file mode 100644
index 000000000..1c1942d73
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.5_T5.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Function Expression for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A5.5_T5.js
+ * @description Insert some LineTerminators into rerutn expression;
+ */
+
+//CHECK#1
+var x =
+1 + (function f
+(t){
+return {
+a:
+function(){
+return t + 1
+}
+}
+}
+)
+(2 + 3).
+a
+()
+
+if (x !== 7) {
+ $ERROR('#1: Check Function Expression for automatic semicolon insertion');
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.6_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.6_T1.js
new file mode 100644
index 000000000..3381c5187
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.6_T1.js
@@ -0,0 +1,36 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Since LineTerminator between Postfix Increment/Decrement Operator(I/DO) and operand is not allowed but
+ * between Prefix I/DO and operand admitted, Postfix I/DO in combination with prefix I/DO after automatic semicolon insertion gives valid result
+ *
+ * @path ch07/7.9/S7.9_A5.6_T1.js
+ * @description Try use Variable1 \n ++ \n Variable2 construction
+ */
+
+var x=0, y=0;
+
+x
+++
+y
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if ((x!==0)&(y!==1)) {
+ $ERROR('#1: Check Postfix Increment Operator for automatic semicolon insertion');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+x
+++y
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if ((x!==0)&(y!==2)) {
+ $ERROR('#2: Check Postfix Increment Operator for automatic semicolon insertion');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.6_T2.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.6_T2.js
new file mode 100644
index 000000000..6861e96e5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.6_T2.js
@@ -0,0 +1,37 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Since LineTerminator between Postfix Increment/Decrement Operator(I/DO) and operand is not allowed but
+ * between Prefix I/DO and operand admitted, Postfix I/DO in combination with prefix I/DO after automatic semicolon insertion gives valid result
+ *
+ * @path ch07/7.9/S7.9_A5.6_T2.js
+ * @description Try use Variable1 \n -- \n Variable2 construction
+ */
+
+var x=0, y=2;
+
+x
+--
+y
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if ((x!==0)&(y!==1)) {
+ $ERROR('#1: Check Postfix Increment Operator for automatic semicolon insertion');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+x
+--y
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if ((x!==0)&(y!==0)) {
+ $ERROR('#2: Check Postfix Increment Operator for automatic semicolon insertion');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.7_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.7_T1.js
new file mode 100644
index 000000000..696ba3c32
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.7_T1.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Since LineTerminator(LT) between Postfix Increment/Decrement Operator(I/DO) and operand is not allowed, two IO(just as two DO and their combination)
+ * between two references separated by [LT] after automatic semicolon insertion lead to syntax error
+ *
+ * @path ch07/7.9/S7.9_A5.7_T1.js
+ * @description Try use Variable1 \n ++ \n ++ \n Variable2 construction
+ * @negative
+ */
+
+var x=0, y=0;
+var z=
+x
+++
+++
+y
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.8_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.8_T1.js
new file mode 100644
index 000000000..9f3b7a75d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.8_T1.js
@@ -0,0 +1,52 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Since LineTerminator(LT) between Postfix Increment/Decrement Operator(I/DO) and operand is admitted,
+ * Additive/Substract Operator(A/SO) in combination with I/DO separated by LT or white spaces after automatic semicolon insertion gives valid result
+ *
+ * @path ch07/7.9/S7.9_A5.8_T1.js
+ * @description Try use Variable1 \n + \n ++ \n Variable2 construction
+ */
+
+var x=0, y=0;
+var z=
+x
++
+++
+y
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if ((z!==1)&&(y!==1)&&(x!==0)) {
+ $ERROR('#1: ');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+z=
+x
++ ++
+y
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if ((z!==2)&&(y!==2)&&(x!==0)) {
+ $ERROR('');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+z=
+x
++ ++
+y
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if ((z!==3)&&(y!==3)&&(x!==0)) {
+ $ERROR('');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A5.9_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A5.9_T1.js
new file mode 100644
index 000000000..98f47ab9a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A5.9_T1.js
@@ -0,0 +1,52 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Additive/Substract Operator(A/SO) in combination with itself separated by LT or white spaces
+ * after automatic semicolon insertion gives valid result
+ *
+ * @path ch07/7.9/S7.9_A5.9_T1.js
+ * @description Try use Variable1 (different combinations of three +) Variable2 construction
+ */
+
+var x=1, y=1;
+var z=
+x
++
++
++
+y
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if ((z!==2)&&(y!==1)&&(x!==1)) {
+ $ERROR('#1: ');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+z=
+x + + + y
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if ((z!==2)&&(y!==1)&&(x!==1)) {
+ $ERROR('');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+z=
+x
++ +
++ +
+y
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if ((z!==2)&&(y!==1)&&(x!==1)) {
+ $ERROR('');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T1.js
new file mode 100644
index 000000000..65bc94985
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T1.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T1.js
+ * @description for( Empty two semicolons and \n)
+ */
+
+//CHECK#1
+for(;;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T10.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T10.js
new file mode 100644
index 000000000..973ac4fe9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T10.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T10.js
+ * @description for (false \n two semicolons false \n)
+ */
+
+//CHECK#1
+for(false
+ ;;false
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T11.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T11.js
new file mode 100644
index 000000000..27da10fff
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T11.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T11.js
+ * @description for (false \n semicolon \n semicolon \n)
+ */
+
+//CHECK#1
+for(false
+ ;
+ ;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T12.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T12.js
new file mode 100644
index 000000000..b78791194
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T12.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T12.js
+ * @description for (false \n semicolon false \n semicolon \n)
+ */
+
+//CHECK#1
+for(false
+ ;false
+ ;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T13.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T13.js
new file mode 100644
index 000000000..1762f3182
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T13.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T13.js
+ * @description for (false \n semicolon false \n semicolon false \n)
+ */
+
+//CHECK#1
+for(false
+ ;false
+ ;false
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T2.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T2.js
new file mode 100644
index 000000000..ef2ac4e46
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T2.js
+ * @description for (semicolon \n semicolon \n)
+ */
+
+//CHECK#1
+for(;
+ ;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T3.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T3.js
new file mode 100644
index 000000000..71ee0b4d5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T3.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T3.js
+ * @description for (\n two semicolons \n)
+ */
+
+//CHECK#1
+for(
+ ;;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T4.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T4.js
new file mode 100644
index 000000000..8055a790a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T4.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T4.js
+ * @description for( \n semicolon \n semicolon \n)
+ */
+
+//CHECK#1
+for(
+ ;
+ ;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T5.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T5.js
new file mode 100644
index 000000000..ce5e585dc
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T5.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T5.js
+ * @description for ( \n semicolon \n\n semicolon \n)
+ */
+
+//CHECK#1
+for(
+ ;
+
+ ;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T6.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T6.js
new file mode 100644
index 000000000..578b88fbe
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T6.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T6.js
+ * @description for(false semicolon false semicolon false \n)
+ */
+
+//CHECK#1
+for(false;false;false
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T7.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T7.js
new file mode 100644
index 000000000..ce53a6f9e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T7.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T7.js
+ * @description for (false semicolon false \n semicolon \n)
+ */
+
+//CHECK#1
+for(false;false
+ ;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T8.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T8.js
new file mode 100644
index 000000000..fca8ddc80
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T8.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T8.js
+ * @description for (false semicolon false \n semicolon false \n)
+ */
+
+//CHECK#1
+for(false;false
+ ;false
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T9.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T9.js
new file mode 100644
index 000000000..977b90b9e
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.1_T9.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.1_T9.js
+ * @description for (false \n two semicolons \n)
+ */
+
+//CHECK#1
+for(false
+ ;;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T1.js
new file mode 100644
index 000000000..e3461b907
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T1.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Use one semicolon
+ *
+ * @path ch07/7.9/S7.9_A6.2_T1.js
+ * @description For header is (semicolon \n)
+ * @negative
+ */
+
+//CHECK#1
+for(;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T10.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T10.js
new file mode 100644
index 000000000..1e65032ca
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T10.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Use one semicolon
+ *
+ * @path ch07/7.9/S7.9_A6.2_T10.js
+ * @description For header is (\n false \n semicolon)
+ * @negative
+ */
+
+//CHECK#1
+for(
+ false
+;) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T2.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T2.js
new file mode 100644
index 000000000..bbe5fb83c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T2.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Use one semicolon
+ *
+ * @path ch07/7.9/S7.9_A6.2_T2.js
+ * @description For header is (\n semicolon \n)
+ * @negative
+ */
+
+//CHECK#1
+for(
+ ;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T3.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T3.js
new file mode 100644
index 000000000..0dfd55125
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T3.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Use one semicolon
+ *
+ * @path ch07/7.9/S7.9_A6.2_T3.js
+ * @description For header is (\n semicolon)
+ * @negative
+ */
+
+//CHECK#1
+for(
+;) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T4.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T4.js
new file mode 100644
index 000000000..d64278972
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T4.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Use one semicolon
+ *
+ * @path ch07/7.9/S7.9_A6.2_T4.js
+ * @description For header is (\n \n semicolon)
+ * @negative
+ */
+
+//CHECK#1
+for(
+
+;) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T5.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T5.js
new file mode 100644
index 000000000..de9ed973b
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T5.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Use one semicolon
+ *
+ * @path ch07/7.9/S7.9_A6.2_T5.js
+ * @description For header is (false semicolon false\n)
+ * @negative
+ */
+
+//CHECK#1
+for(false;false
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T6.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T6.js
new file mode 100644
index 000000000..1efe468d2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T6.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Use one semicolon
+ *
+ * @path ch07/7.9/S7.9_A6.2_T6.js
+ * @description For header is (false semicolon \n false)
+ * @negative
+ */
+
+//CHECK#1
+for(false;
+false
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T7.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T7.js
new file mode 100644
index 000000000..5050697ac
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T7.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Use one semicolon
+ *
+ * @path ch07/7.9/S7.9_A6.2_T7.js
+ * @description For header is (false \n semicolon \n)
+ * @negative
+ */
+
+//CHECK#1
+for(false
+ ;
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T8.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T8.js
new file mode 100644
index 000000000..526809c86
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T8.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Use one semicolon
+ *
+ * @path ch07/7.9/S7.9_A6.2_T8.js
+ * @description For header is (false \n semicolon false \n)
+ * @negative
+ */
+
+//CHECK#1
+for(false
+ ;false
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T9.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T9.js
new file mode 100644
index 000000000..21e635ad0
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.2_T9.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Use one semicolon
+ *
+ * @path ch07/7.9/S7.9_A6.2_T9.js
+ * @description For header is (\n semicolon false)
+ * @negative
+ */
+
+//CHECK#1
+for(
+;false) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T1.js
new file mode 100644
index 000000000..4089c29ef
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T1.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Don`t use semicolons
+ *
+ * @path ch07/7.9/S7.9_A6.3_T1.js
+ * @description For header is (\n)
+ * @negative
+ */
+
+//CHECK#1
+for(
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T2.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T2.js
new file mode 100644
index 000000000..6b54313e2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T2.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Don`t use semicolons
+ *
+ * @path ch07/7.9/S7.9_A6.3_T2.js
+ * @description For header is (\n \n)
+ * @negative
+ */
+
+//CHECK#1
+for(
+
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T3.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T3.js
new file mode 100644
index 000000000..ee52d6181
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T3.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Don`t use semicolons
+ *
+ * @path ch07/7.9/S7.9_A6.3_T3.js
+ * @description For header is (\n \n \n)
+ * @negative
+ */
+
+//CHECK#1
+for(
+
+
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T4.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T4.js
new file mode 100644
index 000000000..41b80740a
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T4.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Don`t use semicolons
+ *
+ * @path ch07/7.9/S7.9_A6.3_T4.js
+ * @description For header is (\n false \n)
+ * @negative
+ */
+
+//CHECK#1
+for(
+ false
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T5.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T5.js
new file mode 100644
index 000000000..2377faaa5
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T5.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Don`t use semicolons
+ *
+ * @path ch07/7.9/S7.9_A6.3_T5.js
+ * @description For header is (false \n false \n)
+ * @negative
+ */
+
+//CHECK#1
+for(false
+ false
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T6.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T6.js
new file mode 100644
index 000000000..b400c9de3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T6.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Don`t use semicolons
+ *
+ * @path ch07/7.9/S7.9_A6.3_T6.js
+ * @description For header is (\n false \n false \n)
+ * @negative
+ */
+
+//CHECK#1
+for(
+ false
+ false
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T7.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T7.js
new file mode 100644
index 000000000..ec63c02bc
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.3_T7.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion.
+ * If automatic insertion semicolon would become one of the two semicolons in the header of a For Statement.
+ * Don`t use semicolons
+ *
+ * @path ch07/7.9/S7.9_A6.3_T7.js
+ * @description For header is (\n false \n false \n false \n)
+ * @negative
+ */
+
+//CHECK#1
+for(
+ false
+ false
+ false
+) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.4_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.4_T1.js
new file mode 100644
index 000000000..44169a23f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.4_T1.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.4_T1.js
+ * @description Three semicolons. For header is (false semicolon false semicolon false semicolon)
+ * @negative
+ */
+
+//CHECK#1
+for(false;false;false;) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A6.4_T2.js b/js/src/tests/test262/ch07/7.9/S7.9_A6.4_T2.js
new file mode 100644
index 000000000..f930cf830
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A6.4_T2.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check For Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A6.4_T2.js
+ * @description Three semicolons. For header is (false semicolon false two semicolons false)
+ * @negative
+ */
+
+//CHECK#1
+for(false;false;;false) {
+ break;
+}
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A7_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A7_T1.js
new file mode 100644
index 000000000..ac730d59f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A7_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Var Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A7_T1.js
+ * @description Checking if execution of "var x \n = 1" passes
+ */
+
+//CHECK#1
+var x
+= 1
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A7_T2.js b/js/src/tests/test262/ch07/7.9/S7.9_A7_T2.js
new file mode 100644
index 000000000..91900bb1f
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A7_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Var Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A7_T2.js
+ * @description Checking if execution of "var x = \n 1" passes
+ */
+
+//CHECK#1
+var x =
+1
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A7_T3.js b/js/src/tests/test262/ch07/7.9/S7.9_A7_T3.js
new file mode 100644
index 000000000..bddc5e4d1
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A7_T3.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Var Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A7_T3.js
+ * @description Checking if execution of "var x \n x = 1" passes
+ */
+
+//CHECK#1
+var x
+x = 1
+
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A7_T4.js b/js/src/tests/test262/ch07/7.9/S7.9_A7_T4.js
new file mode 100644
index 000000000..46f17a477
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A7_T4.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Var Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A7_T4.js
+ * @description Checking if execution of "var \n x" passes
+ */
+
+//CHECK#1
+var
+x
+
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A7_T5.js b/js/src/tests/test262/ch07/7.9/S7.9_A7_T5.js
new file mode 100644
index 000000000..d1e1be650
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A7_T5.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Var Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A7_T5.js
+ * @description Checking if execution of "var \n x \n = \n 1" passes
+ */
+
+//CHECK#1
+var
+x
+=
+1
+
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A7_T6.js b/js/src/tests/test262/ch07/7.9/S7.9_A7_T6.js
new file mode 100644
index 000000000..df7911717
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A7_T6.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Var Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A7_T6.js
+ * @description Checking if execution of "var x, \n y" passes
+ */
+
+//CHECK#1
+var x,
+y
+
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A7_T7.js b/js/src/tests/test262/ch07/7.9/S7.9_A7_T7.js
new file mode 100644
index 000000000..9beb8822c
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A7_T7.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Var Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A7_T7.js
+ * @description Checking if execution of "var x \n y" passes
+ * @negative
+ */
+
+//CHECK#1
+var x
+y
+
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A7_T8.js b/js/src/tests/test262/ch07/7.9/S7.9_A7_T8.js
new file mode 100644
index 000000000..9b9057ad9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A7_T8.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Var Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A7_T8.js
+ * @description Checking if execution of "var x \n ,y" passes
+ */
+
+//CHECK#1
+var x
+,y
+
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A7_T9.js b/js/src/tests/test262/ch07/7.9/S7.9_A7_T9.js
new file mode 100644
index 000000000..826ce4651
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A7_T9.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Var Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A7_T9.js
+ * @description Checking if execution of "var x \n ,y = 1" passes
+ */
+
+//CHECK#1
+var
+x
+,y = 1
+
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A8_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A8_T1.js
new file mode 100644
index 000000000..d708cb3f6
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A8_T1.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Empty Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A8_T1.js
+ * @description Checking if execution of one semicolon passes
+ */
+
+//CHECK#1
+;
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A8_T2.js b/js/src/tests/test262/ch07/7.9/S7.9_A8_T2.js
new file mode 100644
index 000000000..8cf2691f8
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A8_T2.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Empty Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A8_T2.js
+ * @description Checking if execution of some semicolons with LineTerminators pases
+ */
+
+//CHECK#1
+;
+;
+;
+;
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A8_T3.js b/js/src/tests/test262/ch07/7.9/S7.9_A8_T3.js
new file mode 100644
index 000000000..4a91d79f2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A8_T3.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Empty Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A8_T3.js
+ * @description Checking if execution of some semicolons without LineTerminators passes
+ */
+
+//CHECK#1
+;;;;
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A8_T4.js b/js/src/tests/test262/ch07/7.9/S7.9_A8_T4.js
new file mode 100644
index 000000000..6017d8221
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A8_T4.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Empty Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A8_T4.js
+ * @description Checking if execution of some semicolons with LineTerminators and numbers passes
+ */
+
+//CHECK#1
+;1;
+;1
+;1;
+;1
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A8_T5.js b/js/src/tests/test262/ch07/7.9/S7.9_A8_T5.js
new file mode 100644
index 000000000..339d7e24d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A8_T5.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Empty Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A8_T5.js
+ * @description Checking if execution of some semicolons without LineTerminators but with numbers passes
+ */
+
+//CHECK#1
+;;1;;1;;1
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A9_T1.js b/js/src/tests/test262/ch07/7.9/S7.9_A9_T1.js
new file mode 100644
index 000000000..0ee175bc3
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A9_T1.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Do-While Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A9_T1.js
+ * @description Execute do { \n }while(false)
+ */
+
+//CHECK#1
+do {
+} while (false)
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A9_T2.js b/js/src/tests/test262/ch07/7.9/S7.9_A9_T2.js
new file mode 100644
index 000000000..3417ff15d
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A9_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Do-While Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A9_T2.js
+ * @description Execute do; while(false) \n true
+ */
+
+//CHECK#1
+do ; while (false)
+true
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A9_T5.js b/js/src/tests/test262/ch07/7.9/S7.9_A9_T5.js
new file mode 100644
index 000000000..0e0be2ee9
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A9_T5.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Do-While Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A9_T5.js
+ * @description Execute do { \n ; \n }while((false) \n )
+ */
+
+//CHECK#1
+do {
+ ;
+} while ((false)
+)
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A9_T6.js b/js/src/tests/test262/ch07/7.9/S7.9_A9_T6.js
new file mode 100644
index 000000000..dfff034d7
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A9_T6.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Do-While Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A9_T6.js
+ * @description Execute do \n while(false)
+ * @negative
+ */
+
+//CHECK#1
+do
+while (false)
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A9_T7.js b/js/src/tests/test262/ch07/7.9/S7.9_A9_T7.js
new file mode 100644
index 000000000..853144bc2
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A9_T7.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Do-While Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A9_T7.js
+ * @description Execute do \n\n while(false)
+ * @negative
+ */
+
+//CHECK#1
+do
+
+while (false)
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A9_T8.js b/js/src/tests/test262/ch07/7.9/S7.9_A9_T8.js
new file mode 100644
index 000000000..398a75efc
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A9_T8.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Do-While Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A9_T8.js
+ * @description Execute do {}; \n while(false)
+ * @negative
+ */
+
+//CHECK#1
+do {};
+while (false)
+
diff --git a/js/src/tests/test262/ch07/7.9/S7.9_A9_T9.js b/js/src/tests/test262/ch07/7.9/S7.9_A9_T9.js
new file mode 100644
index 000000000..cc5948759
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/S7.9_A9_T9.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Check Do-While Statement for automatic semicolon insertion
+ *
+ * @path ch07/7.9/S7.9_A9_T9.js
+ * @description Execute do {} \n while(false)
+ */
+
+//CHECK#1
+do {}
+while (false)
+
diff --git a/js/src/tests/test262/ch07/7.9/browser.js b/js/src/tests/test262/ch07/7.9/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/browser.js
diff --git a/js/src/tests/test262/ch07/7.9/shell.js b/js/src/tests/test262/ch07/7.9/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/7.9/shell.js
diff --git a/js/src/tests/test262/ch07/browser.js b/js/src/tests/test262/ch07/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/browser.js
diff --git a/js/src/tests/test262/ch07/shell.js b/js/src/tests/test262/ch07/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch07/shell.js