aboutsummaryrefslogtreecommitdiffstats
path: root/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22
diff options
context:
space:
mode:
Diffstat (limited to 'external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22')
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js33
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js32
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js35
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js35
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js57
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js50
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js58
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js56
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js60
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js64
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js59
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js64
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js60
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js70
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js37
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js58
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js32
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js32
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js32
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js63
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js61
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js60
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js60
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js60
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js60
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js50
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js37
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js37
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js57
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js56
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js61
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js58
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js59
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js59
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js59
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js59
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js57
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js56
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js61
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js58
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js59
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js59
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js59
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js59
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js61
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js59
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js61
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js62
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js59
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js35
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js38
258 files changed, 12077 insertions, 0 deletions
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js
new file mode 100644
index 000000000..74e650c96
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js
+ * @description Array.prototype.reduceRight must exist as a function
+ */
+
+
+function testcase() {
+ var f = Array.prototype.reduceRight;
+ if (typeof(f) === "function") {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js
new file mode 100644
index 000000000..ab0facb49
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js
@@ -0,0 +1,32 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js
+ * @description Array.prototype.reduceRight.length must be 1
+ */
+
+
+function testcase() {
+ if (Array.prototype.reduceRight.length === 1) {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js
new file mode 100644
index 000000000..60abd7cd9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js
@@ -0,0 +1,35 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js
+ * @description Array.prototype.reduceRight applied to undefined throws a TypeError
+ */
+
+
+function testcase() {
+ try {
+ Array.prototype.reduceRight.call(undefined);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js
new file mode 100644
index 000000000..9e4283cc5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js
+ * @description Array.prototype.reduceRight applied to the Math object
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return '[object Math]' === Object.prototype.toString.call(obj);
+ }
+
+ try {
+ Math.length = 1;
+ Math[0] = 1;
+ return Array.prototype.reduceRight.call(Math, callbackfn, 1) && accessed;
+ } finally {
+ delete Math[0];
+ delete Math.length;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js
new file mode 100644
index 000000000..414d93bde
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js
+ * @description Array.prototype.reduceRight applied to Date object
+ */
+
+
+function testcase() {
+
+ var obj = new Date();
+ obj.length = 1;
+ obj[0] = 1;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj instanceof Date;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js
new file mode 100644
index 000000000..745e4609d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js
+ * @description Array.prototype.reduceRight applied to RegExp object
+ */
+
+
+function testcase() {
+
+ var obj = new RegExp();
+ obj.length = 1;
+ obj[0] = 1;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, o) {
+ accessed = true;
+ return o instanceof RegExp;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js
new file mode 100644
index 000000000..ab29a6678
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js
+ * @description Array.prototype.reduceRight applied to the JSON object
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return ('[object JSON]' === Object.prototype.toString.call(obj));
+ }
+
+ try {
+ JSON.length = 1;
+ JSON[0] = 1;
+ return Array.prototype.reduceRight.call(JSON, callbackfn, 1) && accessed;
+ } finally {
+ delete JSON.length;
+ delete JSON[0];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js
new file mode 100644
index 000000000..458c374db
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js
+ * @description Array.prototype.reduceRight applied to Error object
+ */
+
+
+function testcase() {
+
+ var obj = new Error();
+ obj.length = 1;
+ obj[0] = 1;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, o) {
+ accessed = true;
+ return o instanceof Error;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js
new file mode 100644
index 000000000..df71db6e2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js
+ * @description Array.prototype.reduceRight applied to the Arguments object
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return '[object Arguments]' === Object.prototype.toString.call(obj);
+ }
+
+ var obj = (function () {
+ return arguments;
+ }("a", "b"));
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, "a") && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js
new file mode 100644
index 000000000..1e1250086
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js
@@ -0,0 +1,35 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js
+ * @description Array.prototype.reduceRight applied to null throws a TypeError
+ */
+
+
+function testcase() {
+ try {
+ Array.prototype.reduceRight.call(null);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js
new file mode 100644
index 000000000..7744db663
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js
+ * @description Array.prototype.reduceRight applied to boolean primitive
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj instanceof Boolean;
+ }
+
+ try {
+ Boolean.prototype[0] = 1;
+ Boolean.prototype.length = 1;
+ return Array.prototype.reduceRight.call(false, callbackfn, 1) && accessed;
+ } finally {
+ delete Boolean.prototype[0];
+ delete Boolean.prototype.length;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js
new file mode 100644
index 000000000..aca15a564
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js
+ * @description Array.prototype.reduceRight applied to Boolean object
+ */
+
+
+function testcase() {
+
+ var obj = new Boolean(true);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj instanceof Boolean;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js
new file mode 100644
index 000000000..30119064e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js
+ * @description Array.prototype.reduceRight applied to number primitive
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj instanceof Number;
+ }
+
+ try {
+ Number.prototype[0] = 1;
+ Number.prototype.length = 1;
+ return Array.prototype.reduceRight.call(2.5, callbackfn, 1) && accessed;
+ } finally {
+ delete Number.prototype[0];
+ delete Number.prototype.length;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js
new file mode 100644
index 000000000..2d3143ac5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js
+ * @description Array.prototype.reduceRight applied to Number object
+ */
+
+
+function testcase() {
+
+ var obj = new Number(-128);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, o) {
+ accessed = true;
+ return o instanceof Number;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js
new file mode 100644
index 000000000..039cb0e56
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js
+ * @description Array.prototype.reduceRight applied to string primitive
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj instanceof String;
+ }
+
+ return Array.prototype.reduceRight.call("hello\nworld\\!", callbackfn, "h") && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js
new file mode 100644
index 000000000..1ca171bf8
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js
+ * @description Array.prototype.reduceRight applied to String object
+ */
+
+
+function testcase() {
+
+ var obj = new String("hello\nworld\\!");
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, o) {
+ accessed = true;
+ return o instanceof String;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, "h") && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js
new file mode 100644
index 000000000..c011bcabf
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js
+ * @description Array.prototype.reduceRight applied to Function object
+ */
+
+
+function testcase() {
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[0] = 11;
+ obj[1] = 9;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, o) {
+ accessed = true;
+ return o instanceof Function;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js
new file mode 100644
index 000000000..a55220805
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js
+ * @description Array.prototype.reduceRight doesn't mutate the Array on which it is called on
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ return 1;
+ }
+ var srcArr = [1,2,3,4,5];
+ srcArr.reduceRight(callbackfn);
+ if(srcArr[0] === 1 &&
+ srcArr[1] === 2 &&
+ srcArr[2] === 3 &&
+ srcArr[3] === 4 &&
+ srcArr[4] === 5)
+ {
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js
new file mode 100644
index 000000000..48b38a50a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js
+ * @description Array.prototype.reduceRight reduces array in descending order of indices
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ return prevVal + curVal;
+ }
+ var srcArr = ['1','2','3','4','5'];
+ if(srcArr.reduceRight(callbackfn) === '54321')
+ {
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js
new file mode 100644
index 000000000..2d439d49b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js
@@ -0,0 +1,36 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js
+ * @description Array.prototype.reduceRight - subclassed array with length 1
+ */
+
+
+function testcase() {
+ foo.prototype = [1];
+ function foo() {}
+ var f = new foo();
+
+ function cb(){}
+ if(f.reduceRight(cb) === 1)
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js
new file mode 100644
index 000000000..af9f4fa83
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js
@@ -0,0 +1,36 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js
+ * @description Array.prototype.reduceRight - subclassed array with length more than 1
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(0, 1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ function cb(prevVal, curVal, idx, obj){return prevVal + curVal;}
+ if(f.reduceRight(cb) === 6)
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js
new file mode 100644
index 000000000..00d0774ce
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js
+ * @description Array.prototype.reduceRight reduces array in descending order of indices(initialvalue present)
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ return prevVal + curVal;
+ }
+ var srcArr = ['1','2','3','4','5'];
+ if(srcArr.reduceRight(callbackfn,'6') === '654321')
+ {
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js
new file mode 100644
index 000000000..570b77a17
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js
@@ -0,0 +1,36 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js
+ * @description Array.prototype.reduceRight - subclassed array when initialvalue provided
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(0, 1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ function cb(prevVal, curVal, idx, obj){return prevVal + curVal;}
+ if(f.reduceRight(cb,"4") === "43210")
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js
new file mode 100644
index 000000000..fd4e9236d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js
@@ -0,0 +1,36 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js
+ * @description Array.prototype.reduceRight - subclassed array when length to 1 and initialvalue provided
+ */
+
+
+function testcase() {
+ foo.prototype = [1];
+ function foo() {}
+ var f = new foo();
+
+ function cb(prevVal, curVal, idx, obj){return prevVal + curVal;}
+ if(f.reduceRight(cb,"4") === "41")
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js
new file mode 100644
index 000000000..3697520b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js
+ * @description Array.prototype.reduceRight doesn't visit expandos
+ */
+
+
+function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ callCnt++;
+ }
+ var srcArr = ['1','2','3','4','5'];
+ srcArr["i"] = 10;
+ srcArr[true] = 11;
+
+ srcArr.reduceRight(callbackfn);
+
+ if(callCnt == 4)
+ {
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js
new file mode 100644
index 000000000..fd4895f07
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js
+ * @description Array.prototype.reduceRight applied to Array-like object, 'length' is an own data property
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: 2
+ };
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js
new file mode 100644
index 000000000..9992fc6e7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js
+ * @description Array.prototype.reduceRight applied to Array-like object, 'length' is an inherited accessor property
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var Con = function () { };
+
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+
+ return Array.prototype.reduceRight.call(child, callbackfn, 11) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js
new file mode 100644
index 000000000..837ae09dc
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js
+ * @description Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property without a get function
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return typeof obj.length === "undefined";
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12
+ };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 111) === 111 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js
new file mode 100644
index 000000000..ab2639754
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js
+ * @description Array.prototype.reduceRight - 'length' is own accessor property without a get function that overrides an inherited accessor property
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return typeof obj.length === "undefined";
+ }
+
+ try {
+ Object.defineProperty(Object.prototype, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var obj = { 0: 12, 1: 13 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) === 11 && !accessed;
+ } finally {
+ delete Object.prototype.length;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js
new file mode 100644
index 000000000..d8b621a4c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js
+ * @description Array.prototype.reduceRight applied to the Array-like object that 'length' is inherited accessor property without a get function
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return curVal > 10;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 11;
+ child[1] = 12;
+
+ return Array.prototype.reduceRight.call(child, callbackfn, 111) === 111 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js
new file mode 100644
index 000000000..42af0ddd7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js
+ * @description Array.prototype.reduceRight applied to the Array-like object that 'length' property doesn't exist
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return curVal > 10;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 111) === 111 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js
new file mode 100644
index 000000000..ff5638d65
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js
+ * @description Array.prototype.reduceRight - 'length' is property of the global object
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === fnGlobalObject().length;
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 12;
+ fnGlobalObject()[1] = 11;
+ fnGlobalObject()[2] = 9;
+ fnGlobalObject().length = 2;
+ return Array.prototype.reduceRight.call(fnGlobalObject(), callbackfn, 111) && accessed;
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js
new file mode 100644
index 000000000..5697b34b7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js
+ * @description Array.prototype.reduceRight applied to the Arguments object, which implements its own property get method
+ */
+
+
+function testcase() {
+
+ var arg;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var func = function (a, b) {
+ arg = arguments;
+ return Array.prototype.reduceRight.call(arguments, callbackfn, 11);
+ };
+
+ return func(12, 11) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js
new file mode 100644
index 000000000..b0868d5d9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js
+ * @description Array.prototype.reduceRight applied to String object, which implements its own property get method
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var str = new String("432");
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 3;
+ }
+
+ try {
+ String.prototype[3] = "1";
+ return Array.prototype.reduceRight.call(str, callbackfn, 111) && accessed;
+ } finally {
+ delete String.prototype[3];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js
new file mode 100644
index 000000000..3ae65d4e7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js
+ * @description Array.prototype.reduceRight applied to Function object, which implements its own property get method
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var fun = function (a, b) {
+ return a + b;
+ };
+ fun[0] = 12;
+ fun[1] = 11;
+ fun[2] = 9;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ return Array.prototype.reduceRight.call(fun, callbackfn, 11) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js
new file mode 100644
index 000000000..209a12153
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js
+ * @description Array.prototype.reduceRight - 'length' is own data property on an Array
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ return [12, 11].reduceRight(callbackfn, 11) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js
new file mode 100644
index 000000000..b249c67b6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js
+ * @description Array.prototype.reduceRight applied to Array-like object, 'length' is an own data property that overrides an inherited data property
+ */
+
+
+function testcase() {
+
+ var accessed = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduceRight.call(child, callbackfn) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js
new file mode 100644
index 000000000..dbaa0c94b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js
+ * @description Array.prototype.reduceRight - 'length' is own data property that overrides an inherited data property on an Array
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var arrProtoLen;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ try {
+ arrProtoLen = Array.prototype.length;
+ Array.prototype.length = 0;
+
+ return [12, 11].reduceRight(callbackfn, 11) && accessed;
+ } finally {
+ Array.prototype.length = arrProtoLen;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js
new file mode 100644
index 000000000..27c2ca633
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js
+ * @description Array.prototype.reduceRight applied to Array-like object, 'length' is an own data property that overrides an inherited accessor property
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ Object.defineProperty(child, "length", {
+ value: 2,
+ configurable: true
+ });
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduceRight.call(child, callbackfn) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js
new file mode 100644
index 000000000..488f6f652
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js
+ * @description Array.prototype.reduceRight applied to Array-like object, 'length' is an inherited data property
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var proto = { length: 2 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ function callbackfn1(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ return Array.prototype.reduceRight.call(child, callbackfn1, 11) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js
new file mode 100644
index 000000000..486eafd98
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js
+ * @description Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property
+ */
+
+
+function testcase() {
+
+ var accessed = true;
+ var obj = {};
+ obj[0] = 12;
+ obj[1] = 11;
+ obj[2] = 9;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js
new file mode 100644
index 000000000..f6e36204d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js
+ * @description Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property that overrides an inherited data property
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduceRight.call(child, callbackfn, 11) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js
new file mode 100644
index 000000000..8cec24039
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js
+ * @description Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn1(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduceRight.call(child, callbackfn1, 111) && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js
new file mode 100644
index 000000000..d22de38c4
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js
+ * @description Array.prototype.reduceRight - value of 'length' is undefined
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: undefined };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js
new file mode 100644
index 000000000..f54201601
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js
+ * @description Array.prototype.reduceRight - value of 'length' is a number (value is NaN)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: NaN };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js
new file mode 100644
index 000000000..f13a2ae7a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js
+ * @description Array.prototype.reduceRight - value of 'length' is a string containing a positive number
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "2" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js
new file mode 100644
index 000000000..b436ad14e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js
+ * @description Array.prototype.reduceRight - value of 'length' is a string containing a negative number
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 11, 1: 12, 2: 9, length: "-4294967294" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js
new file mode 100644
index 000000000..746d5135f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js
+ * @description Array.prototype.reduceRight - value of 'length' is a string containing a decimal number
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "2.5" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js
new file mode 100644
index 000000000..225d34d0b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js
+ * @description Array.prototype.reduceRight - value of 'length' is a string containing +/-Infinity
+ */
+
+
+function testcase() {
+
+ var accessed1 = false;
+ var accessed2 = false;
+ var accessed3 = false;
+
+ function callbackfn1(prevVal, curVal, idx, obj) {
+ accessed1 = true;
+ }
+
+ function callbackfn2(prevVal, curVal, idx, obj) {
+ accessed2 = true;
+ }
+
+ function callbackfn3(prevVal, curVal, idx, obj) {
+ accessed3 = true;
+ }
+
+ var obj1 = { 0: 9, length: "Infinity" };
+ var obj2 = { 0: 9, length: "-Infinity" };
+ var obj3 = { 0: 9, length: "+Infinity" };
+
+ return Array.prototype.reduceRight.call(obj1, callbackfn1, 1) === 1 &&
+ Array.prototype.reduceRight.call(obj2, callbackfn2, 2) === 2 &&
+ Array.prototype.reduceRight.call(obj3, callbackfn3, 3) === 3 &&
+ !accessed1 && !accessed2 && !accessed3;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js
new file mode 100644
index 000000000..117033d49
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js
+ * @description Array.prototype.reduceRight - value of 'length' is a string containing an exponential number
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "2E0" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js
new file mode 100644
index 000000000..02a7d6e23
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js
+ * @description Array.prototype.reduceRight - value of 'length' is a string containing a hex number
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "0x0002" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js
new file mode 100644
index 000000000..9eabe42a2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js
+ * @description Array.prototype.reduceRight - value of 'length' is a string containing a number with leading zeros
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "0002.00" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js
new file mode 100644
index 000000000..944575911
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js
+ * @description Array.prototype.reduceRight - value of 'length' is a string that can't convert to a number
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, 1: 8, length: "two" };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) === 11 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js
new file mode 100644
index 000000000..4af909bf6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js
+ * @description Array.prototype.reduceRight - value of 'length' is an object which has an own toString method
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var toStringAccessed = false;
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: {
+ toString: function () {
+ toStringAccessed = true;
+ return '2';
+ }
+ }
+ };
+
+ // objects inherit the default valueOf() method from Object
+ // that simply returns itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2 && toStringAccessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js
new file mode 100644
index 000000000..d744fd612
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js
+ * @description Array.prototype.reduceRight applied to an Array-like object, 'length' is 0 (length overridden to false(type conversion))
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: false };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js
new file mode 100644
index 000000000..7aba50177
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js
+ * @description Array.prototype.reduceRight - value of 'length' is an Object which has an own valueOf method
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var valueOfAccessed = false;
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ }
+ };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2 && valueOfAccessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js
new file mode 100644
index 000000000..1469a9ff3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js
+ * @description Array.prototype.reduceRight - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ },
+ toString: function () {
+ toStringAccessed = true;
+ return '2';
+ }
+ }
+ };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2 && valueOfAccessed && toStringAccessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js
new file mode 100644
index 000000000..f25ecba47
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js
+ * @description Array.prototype.reduceRight throws TypeError exception when 'length' is an object with toString and valueOf methods that don�t return primitive values
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12,
+
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ },
+ toString: function () {
+ toStringAccessed = true;
+ return {};
+ }
+ }
+ };
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && toStringAccessed && valueOfAccessed && !accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js
new file mode 100644
index 000000000..f3754d15a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js
+ * @description Array.prototype.reduceRight uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ var valueOfAccessed = false;
+ var toStringAccessed = false;
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ };
+ var Con = function () { };
+ Con.prototype = proto;
+ var child = new Con();
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ child.toString = function () {
+ toStringAccessed = true;
+ return '1';
+ };
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: child
+ };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2 && valueOfAccessed && !toStringAccessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js
new file mode 100644
index 000000000..41b2afd53
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js
+ * @description Array.prototype.reduceRight - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: 2.685 };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js
new file mode 100644
index 000000000..5a287ba43
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js
+ * @description Array.prototype.reduceRight - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: -4294967294.5
+ };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js
new file mode 100644
index 000000000..b4e0d978e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js
+ * @description Array.prototype.reduceRight - value of 'length' is boundary value (2^32)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = {
+ 0: 12,
+ length: 4294967296
+ };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js
new file mode 100644
index 000000000..251828426
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js
+ * @description Array.prototype.reduceRight - value of 'length' is boundary value (2^32 + 1)
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 0) {
+ testResult1 = false;
+ }
+
+ if (idx === 0) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+ length: 4294967297
+ };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js
new file mode 100644
index 000000000..2634521e5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js
+ * @description Array.prototype.reduceRight - value of 'length' is a number (value is 0)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: 0 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js
new file mode 100644
index 000000000..169c14b03
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js
+ * @description Array.prototype.reduceRight - value of 'length' is a number (value is +0)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: +0 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js
new file mode 100644
index 000000000..b9fcde212
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js
+ * @description Array.prototype.reduceRight - value of 'length' is a number (value is -0)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: -0 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js
new file mode 100644
index 000000000..93b9b2fa5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js
+ * @description Array.prototype.reduceRight - value of 'length' is a number (value is positive)
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 1: 11, 2: 9, length: 2 };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js
new file mode 100644
index 000000000..e2dea4aef
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js
+ * @description Array.prototype.reduceRight - value of 'length' is a number (value is negative)
+ */
+
+
+function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 1: 11, 2: 9, length: -4294967294 };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js
new file mode 100644
index 000000000..4169986f7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js
+ * @description Array.prototype.reduceRight - value of 'length' is a number (value is Infinity)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: Infinity };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js
new file mode 100644
index 000000000..e7b749f2d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js
+ * @description Array.prototype.reduceRight - value of 'length' is a number (value is -Infinity)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: -Infinity };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js
new file mode 100644
index 000000000..c22ca7316
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js
+ * @description Array.prototype.reduceRight throws TypeError if callbackfn is undefined
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight();
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js
new file mode 100644
index 000000000..e9e9cfef6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js
+ * @description Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 2
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js
new file mode 100644
index 000000000..ac1f813f7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js
+ * @description Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 3
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js
new file mode 100644
index 000000000..0aa8c225a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js
@@ -0,0 +1,37 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js
+ * @description Array.prototype.reduceRight - 'callbackfn' is a function
+ */
+
+
+function testcase() {
+
+ var initialValue = 0;
+ function callbackfn(accum, val, idx, obj) {
+ accum += val;
+ return accum;
+ }
+
+ return 20 === [11, 9].reduceRight(callbackfn, initialValue);
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js
new file mode 100644
index 000000000..888955fae
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js
+ * @description Array.prototype.reduceRight - calling with no callbackfn is the same as passing undefined for callbackfn
+ */
+
+
+function testcase() {
+ var obj = { 10: 10 };
+ var lengthAccessed = false;
+ var loopAccessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ lengthAccessed = true;
+ return 20;
+ },
+ configurable: true
+ });
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ loopAccessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && lengthAccessed && !loopAccessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js
new file mode 100644
index 000000000..f1fab4bbc
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js
+ * @description Array.prototype.reduceRight throws ReferenceError if callbackfn is unreferenced
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(foo);
+ }
+ catch(e) {
+ if(e instanceof ReferenceError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js
new file mode 100644
index 000000000..d336f2816
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js
+ * @description Array.prototype.reduceRight throws TypeError if callbackfn is null
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(null);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js
new file mode 100644
index 000000000..75d4085f9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js
+ * @description Array.prototype.reduceRight throws TypeError if callbackfn is boolean
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(true);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js
new file mode 100644
index 000000000..185f8e9c9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js
+ * @description Array.prototype.reduceRight throws TypeError if callbackfn is number
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(5);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js
new file mode 100644
index 000000000..168f9d478
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js
+ * @description Array.prototype.reduceRight throws TypeError if callbackfn is string
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight("abc");
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js
new file mode 100644
index 000000000..f2929bc7f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js
+ * @description Array.prototype.reduceRight throws TypeError if callbackfn is Object without [[Call]] internal method
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(new Object());
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js
new file mode 100644
index 000000000..a5e29c493
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js
+ * @description Array.prototype.reduceRight - side effects produced by step 2 are visible when an exception occurs
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js
new file mode 100644
index 000000000..990e885c2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js
+ * @description Array.prototype.reduceRight - side effects produced by step 3 are visible when an exception occurs
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js
new file mode 100644
index 000000000..7f7fa85b2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js
+ * @description Array.prototype.reduceRight throws TypeError if 'length' is 0 (empty array), no initVal
+ */
+
+
+function testcase() {
+ function cb(){}
+
+ try {
+ [].reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js
new file mode 100644
index 000000000..bf9929388
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js
+ * @description Array.prototype.reduceRight - side-effects produced by step 2 when an exception occurs
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js
new file mode 100644
index 000000000..3e870aa8a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js
+ * @description Array.prototype.reduceRight - side-effects produced by step 3 when an exception occurs
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "0";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js
new file mode 100644
index 000000000..2969fdd7e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js
+ * @description Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 2
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js
new file mode 100644
index 000000000..8cefc1424
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js
+ * @description Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 3
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js
new file mode 100644
index 000000000..fe934c064
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js
+ * @description Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to null (type conversion)), no initVal
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = null;
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js
new file mode 100644
index 000000000..0da9801ce
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js
+ * @description Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to false (type conversion)), no initVal
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = false;
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js
new file mode 100644
index 000000000..0197af15f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js
+ * @description Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion)), no initVal
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js
new file mode 100644
index 000000000..85091deef
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js
+ * @description Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion)), no initVal
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = '0';
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js
new file mode 100644
index 000000000..5f71c1434
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js
+ * @description Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden with obj with valueOf), no initVal
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { valueOf: function () { return 0;}};
+ f.length = o;
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js
new file mode 100644
index 000000000..f2d81c924
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js
+ * @description Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString)), no initVal
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js
new file mode 100644
index 000000000..053c32ea4
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js
+ * @description Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden with []), no initVal
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js
new file mode 100644
index 000000000..d5cc4441f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js
@@ -0,0 +1,32 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js
+ * @description Array.prototype.reduceRight - 'initialValue' is returned if 'len' is 0 and 'initialValue' is present
+ */
+
+
+function testcase() {
+
+ var initialValue = 10;
+ return initialValue === [].reduceRight(function () { }, initialValue);
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js
new file mode 100644
index 000000000..c3730f514
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js
@@ -0,0 +1,36 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js
+ * @description Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (empty array)
+ */
+
+
+function testcase() {
+ function cb(){}
+
+ try {
+ if([].reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js
new file mode 100644
index 000000000..6ca9ab9e9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js
@@ -0,0 +1,32 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js
+ * @description Array.prototype.reduceRight - 'initialValue' is present
+ */
+
+
+function testcase() {
+
+ var str = "initialValue is present";
+ return str === [].reduceRight(function () { }, str);
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js
new file mode 100644
index 000000000..ae1578967
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js
@@ -0,0 +1,32 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js
+ * @description Array.prototype.reduceRight - 'initialValue' is not present
+ */
+
+
+function testcase() {
+
+ var str = "initialValue is not present";
+ return str === [str].reduceRight(function () { });
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js
new file mode 100644
index 000000000..c678c2c04
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js
+ * @description Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to null (type conversion))
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = null;
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js
new file mode 100644
index 000000000..524f06a18
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js
+ * @description Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to false (type conversion))
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = false;
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js
new file mode 100644
index 000000000..979de0795
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js
+ * @description Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to 0 (type conversion))
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js
new file mode 100644
index 000000000..b9dea4300
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js
+ * @description Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to '0' (type conversion))
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = '0';
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js
new file mode 100644
index 000000000..d9c619112
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js
+ * @description Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with obj with valueOf)
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { valueOf: function () { return 0;}};
+ f.length = o;
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js
new file mode 100644
index 000000000..5afc557e0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js
+ * @description Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with obj w/o valueOf (toString))
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js
new file mode 100644
index 000000000..8b7f154c3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js
+ * @description Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with [])
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js
new file mode 100644
index 000000000..d02f5e99d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js
+ * @description Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with [0])
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [0];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js
new file mode 100644
index 000000000..28c78bdc5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js
+ * @description Array.prototype.reduceRight - no observable effects occur if 'len' is 0
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ var obj = { length: 0 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ accessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js
new file mode 100644
index 000000000..1b114d541
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js
+ * @description Array.prototype.reduceRight - modifications to length don't change number of iterations in step 9
+ */
+
+
+function testcase() {
+ var called = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ called++;
+ return prevVal + curVal;
+ }
+
+ var arr = [0, 1, 2, 3];
+ Object.defineProperty(arr, "4", {
+ get: function () {
+ arr.length = 2;
+ return 10;
+ },
+ configurable: true
+ });
+
+ var preVal = arr.reduceRight(callbackfn);
+
+ return preVal === 11 && called === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js
new file mode 100644
index 000000000..327a23bf7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js
+ * @description Array.prototype.reduceRight - while loop is breaken once 'kPresent' is true
+ */
+
+
+function testcase() {
+
+ var called = 0;
+ var testResult = false;
+ var firstCalled = 0;
+ var secondCalled = 0;
+
+ function callbackfn(prevVal, val, idx, obj) {
+ if (called === 0) {
+ testResult = (idx === 1);
+ }
+ called++;
+ }
+
+ var arr = [, , , ];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ firstCalled++;
+ return 9;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ secondCalled++;
+ return 11;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+
+ return testResult && firstCalled === 1 && secondCalled === 1;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js
new file mode 100644
index 000000000..d881455aa
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js
+ * @description Array.prototype.reduceRight - added properties in step 2 are visible here
+ */
+
+
+function testcase() {
+
+ var obj = {};
+
+ function callbackfn(prevVal, curVal, idx, obj) { }
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ obj[2] = "accumulator";
+ return 3;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.reduceRight.call(obj, callbackfn) === "accumulator";
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js
new file mode 100644
index 000000000..73b6a6a66
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js
+ * @description Array.prototype.reduceRight - deleted properties in step 2 are visible here
+ */
+
+
+function testcase() {
+
+ var obj = { 2: "accumulator", 3: "another" };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ delete obj[2];
+ return 5;
+ },
+ configurable: true
+ });
+
+ return "accumulator" !== Array.prototype.reduceRight.call(obj, function () { });
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js
new file mode 100644
index 000000000..d26806e85
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0) {
+ testResult = (prevVal === 1);
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, length: 2 };
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js
new file mode 100644
index 000000000..3240fc2a0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array
+ */
+
+
+function testcase() {
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2) {
+ testResult = (curVal === 2);
+ }
+ }
+
+ var arr = [0, 1, , 3];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js
new file mode 100644
index 000000000..152e5d75b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "2", {
+ get: function () {
+ return "20";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js
new file mode 100644
index 000000000..cc8f12a90
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ try {
+ Array.prototype[2] = 2;
+ var arr = [0, 1];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "20";
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js
new file mode 100644
index 000000000..b991d91d0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1 };
+
+ Object.defineProperty(proto, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "2", {
+ get: function () {
+ return "20";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js
new file mode 100644
index 000000000..eec54dea5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var arr = [0, 1, , ];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "20";
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js
new file mode 100644
index 000000000..8619e2747
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var proto = { 0: 0, 1: 1 };
+
+ Object.defineProperty(proto, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js
new file mode 100644
index 000000000..d546c95ac
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var arr = [0, 1, , ];
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js
new file mode 100644
index 000000000..aeb584b54
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, length: 3 };
+
+ Object.defineProperty(obj, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js
new file mode 100644
index 000000000..e7d254a24
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ var arr = [0, 1];
+
+ Object.defineProperty(arr, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js
new file mode 100644
index 000000000..5651a7b75
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ try {
+ Object.prototype[2] = 2;
+
+ var obj = { 0: 0, 1: 1, length: 3 };
+ Object.defineProperty(obj, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ } finally {
+ delete Object.prototype[2];
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js
new file mode 100644
index 000000000..0c77856f7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var arr = [0, 1, 2];
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js
new file mode 100644
index 000000000..27239d4da
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ try {
+ Array.prototype[2] = 2;
+ var arr = [0, 1];
+ Object.defineProperty(arr, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js
new file mode 100644
index 000000000..454188465
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1 };
+
+ Object.defineProperty(proto, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js
new file mode 100644
index 000000000..852bf5156
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ var arr = [0, 1, , ];
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js
new file mode 100644
index 000000000..0dca263f2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js
+ * @description Array.prototype.reduceRight - This object is the global object which contains index property
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 0;
+ fnGlobalObject()[1] = 1;
+ fnGlobalObject()[2] = 2;
+ fnGlobalObject().length = 3;
+
+ Array.prototype.reduceRight.call(fnGlobalObject(), callbackfn);
+ return testResult;
+
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js
new file mode 100644
index 000000000..7084e5bdf
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js
+ * @description Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0) {
+ testResult = (prevVal === 1);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn);
+ };
+
+ func(0, 1);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js
new file mode 100644
index 000000000..33f196f09
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js
+ * @description Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn);
+ };
+
+ func(0, 1, 2);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js
new file mode 100644
index 000000000..c78e9f59c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js
+ * @description Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2) {
+ testResult = (prevVal === 3);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn);
+ };
+
+ func(0, 1, 2, 3);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js
new file mode 100644
index 000000000..e13d61e1a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js
+ * @description Array.prototype.reduceRight applied to String object, which implements its own property get method
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "2");
+ }
+ }
+
+ var str = new String("012");
+
+ Array.prototype.reduceRight.call(str, callbackfn);
+ return testResult;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js
new file mode 100644
index 000000000..de1bc5220
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js
+ * @description Array.prototype.reduceRight applied to Function object which implements its own property get method
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var obj = function (a, b, c) {
+ return a + b + c;
+ };
+
+ obj[0] = 0;
+ obj[1] = 1;
+ obj[2] = 2;
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js
new file mode 100644
index 000000000..0c62653eb
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2, length: 2 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = "10";
+ child[2] = "20";
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js
new file mode 100644
index 000000000..5e4eb47dc
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js
+ * @description Array.prototype.reduceRight - element changed by getter on current iteration is observed in subsequent iterations on an Array
+ */
+
+
+function testcase() {
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1 && prevVal === 2);
+ }
+ }
+
+ var arr = [0];
+ var preIterVisible = false;
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return "20";
+ }
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ preIterVisible = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js
new file mode 100644
index 000000000..3b3f232d4
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js
+ * @description Array.prototype.reduceRight - element changed by getter on current iteration is observed subsequetly on an Array-like object
+ */
+
+
+function testcase() {
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2 && curVal === 1);
+ }
+ }
+
+ var obj = { 0: 0, length: 3 };
+ var preIterVisible = false;
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return "20";
+ }
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ preIterVisible = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js
new file mode 100644
index 000000000..3b63a1fd3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js
+ * @description Array.prototype.reduceRight - Exception in getter terminate iteration on an Array-like object
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx <= 1) {
+ accessed = true;
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, length: 3 };
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js
new file mode 100644
index 000000000..d2c6a2145
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js
+ * @description Array.prototype.reduceRight - Exception in getter terminate iteration on an Array
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx <= 1) {
+ accessed = true;
+ }
+ }
+
+ var arr = [0, 1];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduceRight(callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js
new file mode 100644
index 000000000..6718d643d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ try {
+ Array.prototype[2] = "11";
+ [0, 1, 2].reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js
new file mode 100644
index 000000000..8a91bd31f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "2", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+ child[0] = "0";
+ child[1] = "1";
+ Object.defineProperty(proto, "2", {
+ value: "20",
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js
new file mode 100644
index 000000000..7a038744a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "2";
+ },
+ configurable: true
+ });
+ [0, 1, 2].reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js
new file mode 100644
index 000000000..c08b19f7f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2, length: 3 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js
new file mode 100644
index 000000000..5df3d6938
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ try {
+ Array.prototype[0] = 0;
+ Array.prototype[1] = 1;
+ Array.prototype[2] = 2;
+ [, , ,].reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[0];
+ delete Array.prototype[1];
+ delete Array.prototype[2];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js
new file mode 100644
index 000000000..1a8aaf2dd
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, length: 3 };
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js
new file mode 100644
index 000000000..53896d3bb
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js
+ * @description Array.prototype.reduceRight throws TypeError when Array is empty and initialValue is not present
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(callbackfn);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js
new file mode 100644
index 000000000..0d0853e33
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js
+ * @description Array.prototype.reduceRight throws TypeError when elements assigned values are deleted by reducign array length and initialValue is not present
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = new Array(10);
+ arr[9] = 1;
+ arr.length = 5;
+ try {
+ arr.reduceRight(callbackfn);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js
new file mode 100644
index 000000000..3a6759677
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js
+ * @description Array.prototype.reduceRight throws TypeError when elements assigned values are deleted and initialValue is not present
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = [1,2,3,4,5];
+ delete arr[0];
+ delete arr[1];
+ delete arr[2];
+ delete arr[3];
+ delete arr[4];
+ try {
+ arr.reduceRight(callbackfn);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js
new file mode 100644
index 000000000..d8abc3ebf
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js
+ * @description Array.prototype.reduceRight doesn't throw error when array has no own properties but prototype contains a single property
+ */
+
+
+function testcase() {
+
+ var arr = [, , , ];
+
+ try {
+ Array.prototype[1] = "prototype";
+ arr.reduceRight(function () { });
+ return true;
+ } catch (ex) {
+ return false;
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js
new file mode 100644
index 000000000..b3d911a62
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js
+ * @description Array.prototype.reduceRight - side effects produced by step 2 are visible when an exception occurs
+ */
+
+
+function testcase() {
+
+ var obj = { };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js
new file mode 100644
index 000000000..9a27693b6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js
+ * @description Array.prototype.reduceRight - side effects produced by step 3 are visible when an exception occurs
+ */
+
+
+function testcase() {
+
+ var obj = {};
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js
new file mode 100644
index 000000000..58db7977f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js
+ * @description Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 2
+ */
+
+
+function testcase() {
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js
new file mode 100644
index 000000000..727c813b7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js
+ * @description Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 3
+ */
+
+
+function testcase() {
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js
new file mode 100644
index 000000000..b9eac75f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js
@@ -0,0 +1,37 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js
+ * @description Array.prototype.reduceRight doesn't consider new elements which index is larger than array original length added to array after it is called, consider new elements which index is smaller than array length
+ */
+
+
+function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ arr[5] = 6;
+ arr[2] = 3;
+ return prevVal + curVal;
+ }
+
+ var arr = ['1', 2, , 4, '5'];
+ return arr.reduceRight(callbackfn) === "54321";
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js
new file mode 100644
index 000000000..658a312ad
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js
+ * @description Array.prototype.reduceRight considers new value of elements in array after it is called
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ arr[3] = -2;
+ arr[0] = -1;
+ return prevVal + curVal;
+ }
+
+ var arr = [1,2,3,4,5];
+ if(arr.reduceRight(callbackfn) === 13)
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js
new file mode 100644
index 000000000..6f82ba777
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js
+ * @description Array.prototype.reduceRight doesn't consider unvisited deleted elements in array after the call
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ delete arr[1];
+ delete arr[4];
+ return prevVal + curVal;
+ }
+
+ var arr = ['1',2,3,4,5];
+ if(arr.reduceRight(callbackfn) === "121" ) // two elements deleted
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js
new file mode 100644
index 000000000..f22a56409
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js
+ * @description Array.prototype.reduceRight doesn't consider unvisited deleted elements when Array.length is decreased
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ arr.length = 2;
+ return prevVal + curVal;
+ }
+
+ var arr = [1,2,3,4,5];
+ if(arr.reduceRight(callbackfn) === 12 )
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js
new file mode 100644
index 000000000..c14a2d99f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js
+ * @description Array.prototype.reduceRight - callbackfn not called for array with one element
+ */
+
+
+function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ callCnt++;
+ return 2;
+ }
+
+ var arr = [1];
+ if(arr.reduceRight(callbackfn) === 1 && callCnt === 0 )
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js
new file mode 100644
index 000000000..bd1e734c3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js
+ * @description Array.prototype.reduceRight visits deleted element in array after the call when same index is also present in prototype
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ delete arr[1];
+ delete arr[2];
+ return prevVal + curVal;
+ }
+ Array.prototype[2] = 6;
+ var arr = ['1',2,3,4,5];
+ var res = arr.reduceRight(callbackfn);
+ delete Array.prototype[2];
+
+ if(res === "151" ) //one element deleted
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js
new file mode 100644
index 000000000..9aa031f9d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js
@@ -0,0 +1,37 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js
+ * @description Array.prototype.reduceRight not affect call when the array is deleted during the call
+ */
+
+
+function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ delete o.arr;
+ return prevVal + curVal;
+ }
+
+ var o = new Object();
+ o.arr = ['1', 2, 3, 4, 5];
+ return o.arr.reduceRight(callbackfn) === "141" && !o.hasOwnProperty("arr");
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js
new file mode 100644
index 000000000..311a07f8e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js
+ * @description Array.prototype.reduceRight - no observable effects occur if 'len' is 0
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn() {
+ accessed = true;
+ }
+
+ var obj = { length: 0 };
+
+ Object.defineProperty(obj, "5", {
+ get: function () {
+ accessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, function () { }, "initialValue");
+ return !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js
new file mode 100644
index 000000000..2b82992fc
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js
+ * @description Array.prototype.reduceRight - modifications to length will change number of iterations
+ */
+
+
+function testcase() {
+ var called = 0;
+ function callbackfn(preVal, val, idx, obj) {
+ called++;
+ }
+
+ var arr = [0, 1, 2, 3];
+ Object.defineProperty(arr, "4", {
+ get: function () {
+ arr.length = 2;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+
+ return called === 3;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js
new file mode 100644
index 000000000..c662a76a5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js
+ * @description Array.prototype.reduceRight returns initialvalue when Array is empty and initialValue is not present
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = new Array(10);
+
+ if(arr.reduceRight(callbackfn,5) === 5)
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js
new file mode 100644
index 000000000..1913d2a6c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js
+ * @description Array.prototype.reduceRight - deleting property of prototype in step 8 causes deleted index property not to be visited on an Array-like Object
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(preVal, val, idx, obj) {
+ accessed = true;
+ if (idx === 3) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 2: 2, length: 20 };
+
+ Object.defineProperty(obj, "5", {
+ get: function () {
+ delete Object.prototype[3];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[3] = 1;
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult && accessed;
+ } finally {
+ delete Object.prototype[3];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js
new file mode 100644
index 000000000..5211740c3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js
+ * @description Array.prototype.reduceRight - deleting property of prototype in step 8 causes deleted index property not to be visited on an Array
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, , , ];
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduceRight(callbackfn);
+ return testResult && accessed;
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js
new file mode 100644
index 000000000..c2297fdfc
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js
+ * @description Array.prototype.reduceRight - deleting own property with prototype property in step 8 causes prototype index property to be visited on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+
+ var obj = { 0: 0, 1: 111, length: 10 };
+
+ Object.defineProperty(obj, "4", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js
new file mode 100644
index 000000000..ca686a303
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js
+ * @description Array.prototype.reduceRight - deleting own property with prototype property in step 8 causes prototype index property to be visited on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+ var arr = [0, 111];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduceRight(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js
new file mode 100644
index 000000000..9d0d2b30a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js
+ * @description Array.prototype.reduceRight - decreasing length of array in step 8 causes deleted index property not to be visited
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 2) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+
+ return testResult && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js
new file mode 100644
index 000000000..c74e3dac8
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js
+ * @description Array.prototype.reduceRight - decreasing length of array with prototype property in step 8 causes prototype index property to be visited
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2 && curVal === "prototype") {
+ testResult = true;
+ }
+ }
+ var arr = [0, 1, 2, 3];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[2];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js
new file mode 100644
index 000000000..d103c8f4a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js
+ * @description Array.prototype.reduceRight - decreasing length of array in step 8 does not delete non-configurable properties
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2 && curVal === "unconfigurable") {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js
new file mode 100644
index 000000000..d0eb6d371
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js
+ * @description Array.prototype.reduceRight - properties added into own object are visited on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0 && curVal === 0) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+ return 1;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js
new file mode 100644
index 000000000..ae657e9ca
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js
+ * @description Array.prototype.reduceRight - properties added into own object are visited on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js
new file mode 100644
index 000000000..f86e9d888
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js
+ * @description Array.prototype.reduceRight - properties added to prototype are visited on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 6 };
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js
new file mode 100644
index 000000000..1a654f07b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js
+ * @description Array.prototype.reduceRight - added properties in step 2 are visible here
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2 && curVal === "2") {
+ testResult = true;
+ }
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ obj[2] = "2";
+ return 3;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js
new file mode 100644
index 000000000..91104a915
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js
+ * @description Array.prototype.reduceRight - properties added to prototype can be visited on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js
new file mode 100644
index 000000000..220aea648
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js
+ * @description Array.prototype.reduceRight - deleting own property causes deleted index property not to be visited on an Array-like object
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 0: 10, length: 10 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "5", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js
new file mode 100644
index 000000000..d5e3c1c19
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js
+ * @description Array.prototype.reduceRight - deleting own property causes deleted index property not to be visited on an Array
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [1, 2, 4];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js
new file mode 100644
index 000000000..9752164fd
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js
+ * @description Array.prototype.reduceRight - deleting property of prototype causes deleted index property not to be visited on an Array-like Object
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 3) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 2: 2, length: 20 };
+
+ Object.defineProperty(obj, "5", {
+ get: function () {
+ delete Object.prototype[3];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[3] = 1;
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult && accessed;
+ } finally {
+ delete Object.prototype[3];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js
new file mode 100644
index 000000000..cc9aab7d5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js
+ * @description Array.prototype.reduceRight - deleting property of prototype causes deleted index property not to be visited on an Array
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, , , ];
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult && accessed;
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js
new file mode 100644
index 000000000..d8d6973b2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js
+ * @description Array.prototype.reduceRight - deleting own property with prototype property causes prototype index property to be visited on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+
+ var obj = { 0: 0, 1: 111, 4: 10, length: 10 };
+
+ Object.defineProperty(obj, "4", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js
new file mode 100644
index 000000000..4fe9fbd54
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js
+ * @description Array.prototype.reduceRight - deleting own property with prototype property causes prototype index property to be visited on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+ var arr = [0, 111];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js
new file mode 100644
index 000000000..4875fa64f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js
+ * @description Array.prototype.reduceRight - decreasing length of array causes deleted index property not to be visited
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 2) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+
+ return testResult && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js
new file mode 100644
index 000000000..baa2e090d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js
+ * @description Array.prototype.reduceRight - decreasing length of array with prototype property causes prototype index property to be visited
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2 && curVal === "prototype") {
+ testResult = true;
+ }
+ }
+ var arr = [0, 1, 2, 3];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+
+ return testResult;
+ } finally {
+ delete Array.prototype[2];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js
new file mode 100644
index 000000000..f293e24ac
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js
+ * @description Array.prototype.reduceRight - decreasing length of array does not delete non-configurable properties
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2 && curVal === "unconfigurable") {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js
new file mode 100644
index 000000000..56d8d2885
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js
+ * @description Array.prototype.reduceRight - deleted properties in step 2 are visible here
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 2) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 2: "2", 3: 10 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ delete obj[2];
+ return 5;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+
+ return accessed && testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js
new file mode 100644
index 000000000..3eb731e39
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js
+ * @description Array.prototype.reduceRight - properties added into own object in step 8 can be visited on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ if (idx === 0 && curVal === 0) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+ return 1;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js
new file mode 100644
index 000000000..6ee22aa4b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js
+ * @description Array.prototype.reduceRight - properties added into own object in step 8 can be visited on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js
new file mode 100644
index 000000000..269ecc6ee
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js
+ * @description Array.prototype.reduceRight - properties added to prototype in step 8 visited on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 6 };
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js
new file mode 100644
index 000000000..bb36d1f78
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js
+ * @description Array.prototype.reduceRight - properties added to prototype in step 8 visited on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduceRight(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js
new file mode 100644
index 000000000..47b1f2613
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js
+ * @description Array.prototype.reduceRight - deleting own property in step 8 causes deleted index property not to be visited on an Array-like object
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(preVal, val, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 0: 10, length: 10 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "5", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js
new file mode 100644
index 000000000..6d55dcc23
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js
+ * @description Array.prototype.reduceRight - deleting own property in step 8 causes deleted index property not to be visited on an Array
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js
new file mode 100644
index 000000000..3cf22af60
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js
+ * @description Array.prototype.reduceRight - callbackfn not called for indexes never been assigned values
+ */
+
+
+function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ callCnt++;
+ return curVal;
+ }
+
+ var arr = new Array(10);
+ arr[0] = arr[1] = undefined; //explicitly assigning a value
+ if( arr.reduceRight(callbackfn) === undefined && callCnt === 1)
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js
new file mode 100644
index 000000000..79232938c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0) {
+ testResult = (curVal === 0);
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, 2: 2, length: 2 };
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js
new file mode 100644
index 000000000..71e9bc307
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js
new file mode 100644
index 000000000..f7b10e7b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ var proto = { 0: 0, 1: 11, 2: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return "1";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js
new file mode 100644
index 000000000..a3ff4b71a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ try {
+ Array.prototype[1] = 11;
+ var arr = [0, ,2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "1";
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js
new file mode 100644
index 000000000..47ddb4dbb
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ var proto = { 0: 0, 2: 2};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return "1";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js
new file mode 100644
index 000000000..427b63f37
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var arr = [0, ,2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "1";
+ },
+ configurable: true
+ });
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js
new file mode 100644
index 000000000..3ebfa1d9b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var proto = { 0: 0, 2: 2 };
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js
new file mode 100644
index 000000000..a55de1496
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ var arr = [0, , 2];
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js
new file mode 100644
index 000000000..4266177a7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js
new file mode 100644
index 000000000..bd4e95d09
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js
new file mode 100644
index 000000000..489cc783e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ try {
+ Object.prototype[1] = 1;
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js
new file mode 100644
index 000000000..08a851f20
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var arr = [0, 1, 2];
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js
new file mode 100644
index 000000000..66915be2d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ try {
+ Array.prototype[1] = 1;
+ var arr = [0, ,2];
+ Object.defineProperty(arr, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js
new file mode 100644
index 000000000..fbdc71ac6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ var proto = { 0: 0, 2: 2 };
+
+ Object.defineProperty(proto, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js
new file mode 100644
index 000000000..c81026014
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var arr = [0, , 2];
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js
new file mode 100644
index 000000000..1f494b7b0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js
+ * @description Array.prototype.reduceRight - This object is an global object which contains index property
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 0;
+ fnGlobalObject()[1] = 1;
+ fnGlobalObject()[2] = 2;
+ fnGlobalObject().length = 3;
+
+ Array.prototype.reduceRight.call(fnGlobalObject(), callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js
new file mode 100644
index 000000000..0acfcbffc
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js
+ * @description Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn, "initialValue");
+ };
+
+ func(0, 1);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js
new file mode 100644
index 000000000..38a590f36
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js
+ * @description Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2) {
+ testResult = (curVal === 2);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn, "initialValue");
+ };
+
+ func(0, 1, 2);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js
new file mode 100644
index 000000000..4de78c778
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js
+ * @description Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 3) {
+ testResult = (curVal === 3);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn, "initialValue");
+ };
+
+ func(0, 1, 2, 3);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js
new file mode 100644
index 000000000..4534eb410
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js
+ * @description Array.prototype.reduceRight applied to String object, which implements its own property get method
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ var str = new String("012");
+ Array.prototype.reduceRight.call(str, callbackfn, "initialValue");
+ return testResult;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js
new file mode 100644
index 000000000..6607ec417
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js
+ * @description Array.prototype.reduceRight applied to Function object which implements its own property get method
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var obj = function (a, b, c) {
+ return a + b + c;
+ };
+ obj[0] = 0;
+ obj[1] = 1;
+ obj[2] = 2;
+ obj[3] = 3;
+
+ Array.prototype.reduceRight.call(obj, callbackfn, initialValue);
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js
new file mode 100644
index 000000000..d66997082
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ var proto = { 0: 10, 1: 11, 2: 12, length: 2 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = "1";
+ child[2] = "2";
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js
new file mode 100644
index 000000000..d9f10d238
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js
+ * @description Array.prototype.reduceRight - element changed by getter on previous iterations is observed on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var arr = [, ,];
+ var preIterVisible = false;
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ preIterVisible = true;
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return "11";
+ }
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js
new file mode 100644
index 000000000..5da915330
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js
+ * @description Array.prototype.reduceRight - element changed by getter on previous iterations is observed on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var obj = { length: 3 };
+ var preIterVisible = false;
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ preIterVisible = true;
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return "11";
+ }
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js
new file mode 100644
index 000000000..725f8358e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js
+ * @description Array.prototype.reduceRight - unnhandled exceptions happened in getter terminate iteration on an Array-like object
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx <= 1) {
+ accessed = true;
+ }
+ }
+
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js
new file mode 100644
index 000000000..769f83a82
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js
+ * @description Array.prototype.reduceRight - unnhandled exceptions happened in getter terminate iteration on an Array
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx <= 1) {
+ accessed = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduceRight(callbackfn, "initialValue");
+ return true;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js
new file mode 100644
index 000000000..c93bdfb94
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Array.prototype[1] = "11";
+ [0, 1, 2].reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js
new file mode 100644
index 000000000..70f30b3b2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0) {
+ testResult = (curVal === "0");
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 10;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ Object.defineProperty(child, "0", {
+ value: "0",
+ configurable: true
+ });
+ child[1] = "1";
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js
new file mode 100644
index 000000000..9f8500d6c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return "11";
+ },
+ configurable: true
+ });
+ [0, 1, 2].reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js
new file mode 100644
index 000000000..f41e1f74a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js
new file mode 100644
index 000000000..9786951b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js
+ * @description Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Array.prototype[0] = 0;
+ Array.prototype[1] = 1;
+ Array.prototype[2] = 2;
+ [, , , ].reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[0];
+ delete Array.prototype[1];
+ delete Array.prototype[2];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js
new file mode 100644
index 000000000..2bd9dac95
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js
+ * @description Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js
new file mode 100644
index 000000000..7923006cb
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js
+ * @description Array.prototype.reduceRight - callbackfn called with correct parameters (initialvalue not passed)
+ */
+
+
+function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ if(idx+1 < obj.length && obj[idx] === curVal && obj[idx+1] === prevVal)
+ return curVal;
+ else
+ return false;
+ }
+
+ var arr = [0,1,true,null,new Object(),"five"];
+ if( arr.reduceRight(callbackfn) === 0)
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js
new file mode 100644
index 000000000..c5af22889
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js
+ * @description Array.prototype.reduceRight - callbackfn is called with 1 formal parameter
+ */
+
+
+function testcase() {
+
+ var called = 0;
+
+ function callbackfn(prevVal) {
+ called++;
+ return prevVal;
+ }
+
+ return [11, 12].reduceRight(callbackfn, 100) === 100 && 2 === called;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js
new file mode 100644
index 000000000..7db4318e8
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js
+ * @description Array.prototype.reduceRight - callbackfn is called with 2 formal parameter
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal) {
+ if (prevVal === 100) {
+ testResult = true;
+ }
+ return curVal > 10;
+ }
+
+ return [11].reduceRight(callbackfn, 100) === true && testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js
new file mode 100644
index 000000000..4a1981d36
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js
+ * @description Array.prototype.reduceRight - callbackfn is called with 3 formal parameter
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+ var arr = [11, 12, 13];
+ var initVal = 6.99;
+
+ function callbackfn(prevVal, curVal, idx) {
+ if (idx === 2) {
+ testResult = (prevVal === initVal);
+ }
+ return curVal > 10 && arguments[3][idx] === curVal;
+ }
+
+ return arr.reduceRight(callbackfn, initVal) === true && testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js
new file mode 100644
index 000000000..93c3019c4
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js
+ * @description Array.prototype.reduceRight - callbackfn is called with 4 formal parameter
+ */
+
+
+function testcase() {
+
+ var arr = [11, 12, 13];
+ var initVal = 6.99;
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2) {
+ testResult = (prevVal === initVal);
+ }
+ return curVal > 10 && obj[idx] === curVal;
+ }
+
+ return arr.reduceRight(callbackfn, initVal) === true && testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js
new file mode 100644
index 000000000..faf21b632
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js
@@ -0,0 +1,35 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js
+ * @description Array.prototype.reduceRight - callbackfn uses arguments
+ */
+
+
+function testcase() {
+
+ function callbackfn() {
+ return arguments[0] === 100 && arguments[3][arguments[2]] === arguments[1];
+ }
+
+ return [11].reduceRight(callbackfn, 100) === true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js
new file mode 100644
index 000000000..36387384a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js
+ * @description Array.prototype.reduceRight - non-indexed properties are not called on an Array-like object
+ */
+
+
+function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (prevVal === 8 || curVal === 8) {
+ testResult = true;
+ }
+ }
+
+ var obj = { 0: 11, 10: 12, non_index_property: 8, length: 20 };
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return !testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js
new file mode 100644
index 000000000..49574875a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js
+ * @description Array.prototype.reduceRight - 'accumulator' used for current iteration is the result of previous iteration on an Array
+ */
+
+
+function testcase() {
+
+ var arr = [11, 12, 13];
+ var testResult = true;
+ var initVal = 6.99;
+ var preResult = initVal;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (prevVal !== preResult) {
+ testResult = false;
+ }
+ preResult = curVal;
+ return curVal;
+ }
+
+ arr.reduceRight(callbackfn, initVal);
+
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js
new file mode 100644
index 000000000..c38bdc322
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js
+ * @description Array.prototype.reduceRight - 'accumulator' used for first iteration is the value of 'initialValue' when it is present on an Array
+ */
+
+
+function testcase() {
+
+ var arr = [11, 12];
+ var testResult = false;
+ var initVal = 6.99;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === initVal);
+ }
+ return curVal;
+ }
+
+ arr.reduceRight(callbackfn, initVal);
+
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js
new file mode 100644
index 000000000..12ef0fcab
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js
+ * @description Array.prototype.reduceRight - value of 'accumulator' used for first iteration is the value of max index property which is not undefined when 'initialValue' is not present on an Array
+ */
+
+
+function testcase() {
+
+ var arr = [11, 12, 13];
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 13);
+ }
+ return curVal;
+ }
+ arr.reduceRight(callbackfn);
+
+ return testResult;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js
new file mode 100644
index 000000000..d937c329c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js
+ * @description Array.prototype.reduceRight - callbackfn called with correct parameters (initialvalue passed)
+ */
+
+
+function testcase() {
+ var bParCorrect = false;
+ var arr = [0, 1, true, null, new Object(), "five"];
+ var initialValue = 5.5;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === obj.length - 1 && obj[idx] === curVal && prevVal === initialValue)
+ return curVal;
+ else if (idx + 1 < obj.length && obj[idx] === curVal && obj[idx + 1] === prevVal)
+ return curVal;
+ else
+ return false;
+ }
+ return arr.reduceRight(callbackfn, initialValue) === 0;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js
new file mode 100644
index 000000000..e4c35a766
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js
+ * @description Array.prototype.reduceRight - undefined can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return typeof prevVal === "undefined";
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, undefined) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js
new file mode 100644
index 000000000..c66a901f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js
+ * @description Array.prototype.reduceRight - null can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === null;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, null) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js
new file mode 100644
index 000000000..20142d337
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js
+ * @description Array.prototype.reduceRight - boolean primitive can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === false;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, false) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js
new file mode 100644
index 000000000..dd017fec2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js
+ * @description Array.prototype.reduceRight - number primitive can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === 12;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 12) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js
new file mode 100644
index 000000000..7cbe1a6dc
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js
+ * @description Array.prototype.reduceRight - string primitive can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === "hello_";
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, "hello_") === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js
new file mode 100644
index 000000000..ba160634c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js
+ * @description Array.prototype.reduceRight - Function Object can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objFunction = function () { };
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objFunction;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objFunction) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js
new file mode 100644
index 000000000..682f49d24
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js
+ * @description Array.prototype.reduceRight - Array Object can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objArray = [];
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objArray;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objArray) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js
new file mode 100644
index 000000000..a823baa61
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js
+ * @description Array.prototype.reduceRight - String Object can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objString = new String();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objString;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objString) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js
new file mode 100644
index 000000000..afc9956c3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js
+ * @description Array.prototype.reduceRight - Boolean Object can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objBoolean = new Boolean();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objBoolean;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objBoolean) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js
new file mode 100644
index 000000000..aef528589
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js
+ * @description Array.prototype.reduceRight - Number Object can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objNumber = new Number();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objNumber;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objNumber) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js
new file mode 100644
index 000000000..24503a5a8
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js
+ * @description Array.prototype.reduceRight - callbackfn takes 4 arguments
+ */
+
+
+function testcase() {
+
+ var bCalled = false;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ bCalled = true;
+ if(prevVal === true && arguments.length === 4)
+ return true;
+ else
+ return false;
+ }
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+ if(arr.reduceRight(callbackfn,true) === true && bCalled === true)
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js
new file mode 100644
index 000000000..1b81ebfc3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js
+ * @description Array.prototype.reduceRight - the Math Object can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === Math;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, Math) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js
new file mode 100644
index 000000000..464fd5cb9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js
+ * @description Array.prototype.reduceRight - Date Object can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objDate = new Date();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objDate;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objDate) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js
new file mode 100644
index 000000000..d78bf82e0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js
+ * @description Array.prototype.reduceRight - RegExp Object can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objRegExp = new RegExp();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objRegExp;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objRegExp) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js
new file mode 100644
index 000000000..e8b31c9b7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js
+ * @description Array.prototype.reduceRight - the JSON can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === JSON;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, JSON) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js
new file mode 100644
index 000000000..84d6babe6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js
+ * @description Array.prototype.reduceRight - Error Object can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objError = new RangeError();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objError;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objError) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js
new file mode 100644
index 000000000..c9adceacf
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js
+ * @description Array.prototype.reduceRight - the Arguments object can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var arg;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === arg;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ (function fun() {
+ arg = arguments;
+ }(10, 11, 12, 13));
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, arg) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js
new file mode 100644
index 000000000..e75e3373f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js
+ * @description Array.prototype.reduceRight - the global object can be used as accumulator
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === fnGlobalObject();
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, fnGlobalObject()) === true && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s.js
new file mode 100644
index 000000000..1d7b805e4
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2010 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s.js
+ * @description Array.prototype.reduceRight - undefined passed as thisValue to strict callbackfn
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ var innerThisCorrect = false;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ "use strict";
+ innerThisCorrect = this===undefined;
+ return true;
+ }
+ [0].reduceRight(callbackfn,true);
+ return innerThisCorrect;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js
new file mode 100644
index 000000000..8d8a30046
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js
+ * @description Array.prototype.reduceRight - k values are passed in acending numeric order
+ */
+
+
+function testcase() {
+
+ var arr = [0, 1, 2, 3, 4, 5];
+ var lastIdx = arr.length - 1;
+ var accessed = false;
+ var result = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (lastIdx !== idx) {
+ result = false;
+ } else {
+ lastIdx--;
+ }
+ }
+ arr.reduceRight(callbackfn, 1);
+ return result && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js
new file mode 100644
index 000000000..c8e11205a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js
+ * @description Array.prototype.reduceRight - k values are accessed during each iteration and not prior to starting the loop on an Array
+ */
+
+
+function testcase() {
+ var arr = [11, 12, 13, 14];
+ var kIndex = [];
+ var result = true;
+ var called = 0;
+
+ //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time.
+ function callbackfn(preVal, curVal, idx, o) {
+ //Each position should be visited one time, which means k is accessed one time during iterations.
+ called++;
+ if (typeof kIndex[idx] === "undefined") {
+ //when current position is visited, its next index should has been visited.
+ if (idx !== arr.length - 1 && typeof kIndex[idx + 1] === "undefined") {
+ result = false;
+ }
+ kIndex[idx] = 1;
+ } else {
+ result = false;
+ }
+ }
+
+ arr.reduceRight(callbackfn, 1);
+ return result && called === 4;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js
new file mode 100644
index 000000000..56c160fc6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js
+ * @description Array.prototype.reduceRight - unhandled exceptions happened in callbackfn terminate iteration
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx < 10) {
+ accessed = true;
+ }
+ if (idx === 10) {
+ throw new Error("Exception occurred in callbackfn");
+ }
+ }
+
+ var obj = { 0: 11, 4: 10, 10: 8, length: 20 };
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return false;
+ } catch (ex) {
+ return !accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js
new file mode 100644
index 000000000..9dca18fe6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js
+ * @description Array.prototype.reduceRight - element changed by callbackfn on previous iterations is observed
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var obj = { 0: 11, 1: 12, length: 2 };
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ obj[idx - 1] = 8;
+ }
+ return curVal > 10;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === false && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js
new file mode 100644
index 000000000..a73df877a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js
+ * @description Array.prototype.reduceRight - callbackfn is called with 0 formal parameter
+ */
+
+
+function testcase() {
+
+ var called = 0;
+
+ function callbackfn() {
+ called++;
+ return true;
+ }
+
+ return [11, 12].reduceRight(callbackfn, 11) === true && 2 === called;
+ }
+runTestCase(testcase);